Coverage Report

Created: 2026-08-31 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/curl_fuzzer/build/curl_fuzzer_option_manifest.inc
Line
Count
Source
1
// Generated by src/curl_fuzzer_tools/generate_option_manifest.py.
2
// Do not edit. Included once from proto_fuzzer/option_apply.cc.
3
static constexpr OptionDescriptor kOptionManifest[] = {
4
    {curl::fuzzer::proto::CURLOPT_CUSTOMREQUEST, OptionValueKind::kString, "CURLOPT_CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST},
5
    {curl::fuzzer::proto::CURLOPT_HTTPGET, OptionValueKind::kBool, "CURLOPT_HTTPGET", CURLOPT_HTTPGET},
6
    {curl::fuzzer::proto::CURLOPT_NOBODY, OptionValueKind::kBool, "CURLOPT_NOBODY", CURLOPT_NOBODY},
7
    {curl::fuzzer::proto::CURLOPT_POST, OptionValueKind::kBool, "CURLOPT_POST", CURLOPT_POST},
8
    {curl::fuzzer::proto::CURLOPT_POSTFIELDS, OptionValueKind::kString, "CURLOPT_POSTFIELDS", CURLOPT_POSTFIELDS},
9
    {curl::fuzzer::proto::CURLOPT_FOLLOWLOCATION, OptionValueKind::kUint, "CURLOPT_FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION},
10
    {curl::fuzzer::proto::CURLOPT_MAXREDIRS, OptionValueKind::kUint, "CURLOPT_MAXREDIRS", CURLOPT_MAXREDIRS},
11
    {curl::fuzzer::proto::CURLOPT_USERAGENT, OptionValueKind::kString, "CURLOPT_USERAGENT", CURLOPT_USERAGENT},
12
    {curl::fuzzer::proto::CURLOPT_ACCEPT_ENCODING, OptionValueKind::kString, "CURLOPT_ACCEPT_ENCODING", CURLOPT_ACCEPT_ENCODING},
13
    {curl::fuzzer::proto::CURLOPT_HEADER, OptionValueKind::kBool, "CURLOPT_HEADER", CURLOPT_HEADER},
14
    {curl::fuzzer::proto::CURLOPT_FAILONERROR, OptionValueKind::kBool, "CURLOPT_FAILONERROR", CURLOPT_FAILONERROR},
15
    {curl::fuzzer::proto::CURLOPT_HTTP_VERSION, OptionValueKind::kUint, "CURLOPT_HTTP_VERSION", CURLOPT_HTTP_VERSION},
16
    {curl::fuzzer::proto::CURLOPT_HTTP09_ALLOWED, OptionValueKind::kBool, "CURLOPT_HTTP09_ALLOWED", CURLOPT_HTTP09_ALLOWED},
17
    {curl::fuzzer::proto::CURLOPT_AUTOREFERER, OptionValueKind::kBool, "CURLOPT_AUTOREFERER", CURLOPT_AUTOREFERER},
18
    {curl::fuzzer::proto::CURLOPT_REFERER, OptionValueKind::kString, "CURLOPT_REFERER", CURLOPT_REFERER},
19
    {curl::fuzzer::proto::CURLOPT_CONNECT_ONLY, OptionValueKind::kUint, "CURLOPT_CONNECT_ONLY", CURLOPT_CONNECT_ONLY},
20
    {curl::fuzzer::proto::CURLOPT_WS_OPTIONS, OptionValueKind::kUint, "CURLOPT_WS_OPTIONS", CURLOPT_WS_OPTIONS},
21
    {curl::fuzzer::proto::CURLOPT_UPLOAD, OptionValueKind::kBool, "CURLOPT_UPLOAD", CURLOPT_UPLOAD},
22
    {curl::fuzzer::proto::CURLOPT_INFILESIZE_LARGE, OptionValueKind::kUint, "CURLOPT_INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE},
23
    {curl::fuzzer::proto::CURLOPT_CRLF, OptionValueKind::kBool, "CURLOPT_CRLF", CURLOPT_CRLF},
24
    {curl::fuzzer::proto::CURLOPT_SSL_VERIFYPEER, OptionValueKind::kBool, "CURLOPT_SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER},
25
    {curl::fuzzer::proto::CURLOPT_CERTINFO, OptionValueKind::kBool, "CURLOPT_CERTINFO", CURLOPT_CERTINFO},
26
    {curl::fuzzer::proto::CURLOPT_COOKIE, OptionValueKind::kString, "CURLOPT_COOKIE", CURLOPT_COOKIE},
27
    {curl::fuzzer::proto::CURLOPT_COOKIELIST, OptionValueKind::kString, "CURLOPT_COOKIELIST", CURLOPT_COOKIELIST},
28
    {curl::fuzzer::proto::CURLOPT_COOKIESESSION, OptionValueKind::kBool, "CURLOPT_COOKIESESSION", CURLOPT_COOKIESESSION},
29
    {curl::fuzzer::proto::CURLOPT_HTTPAUTH, OptionValueKind::kUint, "CURLOPT_HTTPAUTH", CURLOPT_HTTPAUTH},
30
    {curl::fuzzer::proto::CURLOPT_USERPWD, OptionValueKind::kString, "CURLOPT_USERPWD", CURLOPT_USERPWD},
31
    {curl::fuzzer::proto::CURLOPT_USERNAME, OptionValueKind::kString, "CURLOPT_USERNAME", CURLOPT_USERNAME},
32
    {curl::fuzzer::proto::CURLOPT_PASSWORD, OptionValueKind::kString, "CURLOPT_PASSWORD", CURLOPT_PASSWORD},
33
    {curl::fuzzer::proto::CURLOPT_UNRESTRICTED_AUTH, OptionValueKind::kBool, "CURLOPT_UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH},
34
    {curl::fuzzer::proto::CURLOPT_XOAUTH2_BEARER, OptionValueKind::kString, "CURLOPT_XOAUTH2_BEARER", CURLOPT_XOAUTH2_BEARER},
35
    {curl::fuzzer::proto::CURLOPT_AWS_SIGV4, OptionValueKind::kString, "CURLOPT_AWS_SIGV4", CURLOPT_AWS_SIGV4},
36
    {curl::fuzzer::proto::CURLOPT_TIMECONDITION, OptionValueKind::kUint, "CURLOPT_TIMECONDITION", CURLOPT_TIMECONDITION},
37
    {curl::fuzzer::proto::CURLOPT_TIMEVALUE_LARGE, OptionValueKind::kUint, "CURLOPT_TIMEVALUE_LARGE", CURLOPT_TIMEVALUE_LARGE},
38
    {curl::fuzzer::proto::CURLOPT_ALTSVC_CTRL, OptionValueKind::kUint, "CURLOPT_ALTSVC_CTRL", CURLOPT_ALTSVC_CTRL},
39
    {curl::fuzzer::proto::CURLOPT_HSTS_CTRL, OptionValueKind::kUint, "CURLOPT_HSTS_CTRL", CURLOPT_HSTS_CTRL},
40
    {curl::fuzzer::proto::CURLOPT_RANGE, OptionValueKind::kString, "CURLOPT_RANGE", CURLOPT_RANGE},
41
    {curl::fuzzer::proto::CURLOPT_RESUME_FROM_LARGE, OptionValueKind::kUint, "CURLOPT_RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE},
42
    {curl::fuzzer::proto::CURLOPT_FILETIME, OptionValueKind::kBool, "CURLOPT_FILETIME", CURLOPT_FILETIME},
43
    {curl::fuzzer::proto::CURLOPT_REQUEST_TARGET, OptionValueKind::kString, "CURLOPT_REQUEST_TARGET", CURLOPT_REQUEST_TARGET},
44
    {curl::fuzzer::proto::CURLOPT_PATH_AS_IS, OptionValueKind::kBool, "CURLOPT_PATH_AS_IS", CURLOPT_PATH_AS_IS},
45
    {curl::fuzzer::proto::CURLOPT_EXPECT_100_TIMEOUT_MS, OptionValueKind::kUint, "CURLOPT_EXPECT_100_TIMEOUT_MS", CURLOPT_EXPECT_100_TIMEOUT_MS},
46
    {curl::fuzzer::proto::CURLOPT_KEEP_SENDING_ON_ERROR, OptionValueKind::kBool, "CURLOPT_KEEP_SENDING_ON_ERROR", CURLOPT_KEEP_SENDING_ON_ERROR},
47
    {curl::fuzzer::proto::CURLOPT_POSTREDIR, OptionValueKind::kUint, "CURLOPT_POSTREDIR", CURLOPT_POSTREDIR},
48
    {curl::fuzzer::proto::CURLOPT_TRANSFER_ENCODING, OptionValueKind::kBool, "CURLOPT_TRANSFER_ENCODING", CURLOPT_TRANSFER_ENCODING},
49
    {curl::fuzzer::proto::CURLOPT_HTTP_TRANSFER_DECODING, OptionValueKind::kBool, "CURLOPT_HTTP_TRANSFER_DECODING", CURLOPT_HTTP_TRANSFER_DECODING},
50
    {curl::fuzzer::proto::CURLOPT_HTTP_CONTENT_DECODING, OptionValueKind::kBool, "CURLOPT_HTTP_CONTENT_DECODING", CURLOPT_HTTP_CONTENT_DECODING},
51
    {curl::fuzzer::proto::CURLOPT_IGNORE_CONTENT_LENGTH, OptionValueKind::kBool, "CURLOPT_IGNORE_CONTENT_LENGTH", CURLOPT_IGNORE_CONTENT_LENGTH},
52
    {curl::fuzzer::proto::CURLOPT_DISALLOW_USERNAME_IN_URL, OptionValueKind::kBool, "CURLOPT_DISALLOW_USERNAME_IN_URL", CURLOPT_DISALLOW_USERNAME_IN_URL},
53
    {curl::fuzzer::proto::CURLOPT_FRESH_CONNECT, OptionValueKind::kBool, "CURLOPT_FRESH_CONNECT", CURLOPT_FRESH_CONNECT},
54
    {curl::fuzzer::proto::CURLOPT_FORBID_REUSE, OptionValueKind::kBool, "CURLOPT_FORBID_REUSE", CURLOPT_FORBID_REUSE},
55
    {curl::fuzzer::proto::CURLOPT_MAXAGE_CONN, OptionValueKind::kUint, "CURLOPT_MAXAGE_CONN", CURLOPT_MAXAGE_CONN},
56
    {curl::fuzzer::proto::CURLOPT_MAXLIFETIME_CONN, OptionValueKind::kUint, "CURLOPT_MAXLIFETIME_CONN", CURLOPT_MAXLIFETIME_CONN},
57
    {curl::fuzzer::proto::CURLOPT_UPLOAD_BUFFERSIZE, OptionValueKind::kUint, "CURLOPT_UPLOAD_BUFFERSIZE", CURLOPT_UPLOAD_BUFFERSIZE},
58
    {curl::fuzzer::proto::CURLOPT_MIME_OPTIONS, OptionValueKind::kUint, "CURLOPT_MIME_OPTIONS", CURLOPT_MIME_OPTIONS},
59
    {curl::fuzzer::proto::CURLOPT_MAXFILESIZE_LARGE, OptionValueKind::kUint, "CURLOPT_MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE},
60
    {curl::fuzzer::proto::CURLOPT_BUFFERSIZE, OptionValueKind::kUint, "CURLOPT_BUFFERSIZE", CURLOPT_BUFFERSIZE},
61
};
62
63
static constexpr const OptionDescriptor* LookupOptionDescriptor(
64
23.8k
    curl::fuzzer::proto::CurlOptionId id) {
65
23.8k
  switch (id) {
66
237
    case curl::fuzzer::proto::CURLOPT_CUSTOMREQUEST:
67
237
      return &kOptionManifest[0];
68
581
    case curl::fuzzer::proto::CURLOPT_HTTPGET:
69
581
      return &kOptionManifest[1];
70
1.23k
    case curl::fuzzer::proto::CURLOPT_NOBODY:
71
1.23k
      return &kOptionManifest[2];
72
886
    case curl::fuzzer::proto::CURLOPT_POST:
73
886
      return &kOptionManifest[3];
74
518
    case curl::fuzzer::proto::CURLOPT_POSTFIELDS:
75
518
      return &kOptionManifest[4];
76
1.98k
    case curl::fuzzer::proto::CURLOPT_FOLLOWLOCATION:
77
1.98k
      return &kOptionManifest[5];
78
704
    case curl::fuzzer::proto::CURLOPT_MAXREDIRS:
79
704
      return &kOptionManifest[6];
80
1.01k
    case curl::fuzzer::proto::CURLOPT_USERAGENT:
81
1.01k
      return &kOptionManifest[7];
82
1.70k
    case curl::fuzzer::proto::CURLOPT_ACCEPT_ENCODING:
83
1.70k
      return &kOptionManifest[8];
84
376
    case curl::fuzzer::proto::CURLOPT_HEADER:
85
376
      return &kOptionManifest[9];
86
270
    case curl::fuzzer::proto::CURLOPT_FAILONERROR:
87
270
      return &kOptionManifest[10];
88
5.69k
    case curl::fuzzer::proto::CURLOPT_HTTP_VERSION:
89
5.69k
      return &kOptionManifest[11];
90
228
    case curl::fuzzer::proto::CURLOPT_HTTP09_ALLOWED:
91
228
      return &kOptionManifest[12];
92
509
    case curl::fuzzer::proto::CURLOPT_AUTOREFERER:
93
509
      return &kOptionManifest[13];
94
786
    case curl::fuzzer::proto::CURLOPT_REFERER:
95
786
      return &kOptionManifest[14];
96
2.24k
    case curl::fuzzer::proto::CURLOPT_CONNECT_ONLY:
97
2.24k
      return &kOptionManifest[15];
98
321
    case curl::fuzzer::proto::CURLOPT_WS_OPTIONS:
99
321
      return &kOptionManifest[16];
100
1.39k
    case curl::fuzzer::proto::CURLOPT_UPLOAD:
101
1.39k
      return &kOptionManifest[17];
102
711
    case curl::fuzzer::proto::CURLOPT_INFILESIZE_LARGE:
103
711
      return &kOptionManifest[18];
104
8
    case curl::fuzzer::proto::CURLOPT_CRLF:
105
8
      return &kOptionManifest[19];
106
0
    case curl::fuzzer::proto::CURLOPT_SSL_VERIFYPEER:
107
0
      return &kOptionManifest[20];
108
0
    case curl::fuzzer::proto::CURLOPT_CERTINFO:
109
0
      return &kOptionManifest[21];
110
0
    case curl::fuzzer::proto::CURLOPT_COOKIE:
111
0
      return &kOptionManifest[22];
112
0
    case curl::fuzzer::proto::CURLOPT_COOKIELIST:
113
0
      return &kOptionManifest[23];
114
0
    case curl::fuzzer::proto::CURLOPT_COOKIESESSION:
115
0
      return &kOptionManifest[24];
116
0
    case curl::fuzzer::proto::CURLOPT_HTTPAUTH:
117
0
      return &kOptionManifest[25];
118
0
    case curl::fuzzer::proto::CURLOPT_USERPWD:
119
0
      return &kOptionManifest[26];
120
0
    case curl::fuzzer::proto::CURLOPT_USERNAME:
121
0
      return &kOptionManifest[27];
122
0
    case curl::fuzzer::proto::CURLOPT_PASSWORD:
123
0
      return &kOptionManifest[28];
124
0
    case curl::fuzzer::proto::CURLOPT_UNRESTRICTED_AUTH:
125
0
      return &kOptionManifest[29];
126
0
    case curl::fuzzer::proto::CURLOPT_XOAUTH2_BEARER:
127
0
      return &kOptionManifest[30];
128
0
    case curl::fuzzer::proto::CURLOPT_AWS_SIGV4:
129
0
      return &kOptionManifest[31];
130
0
    case curl::fuzzer::proto::CURLOPT_TIMECONDITION:
131
0
      return &kOptionManifest[32];
132
0
    case curl::fuzzer::proto::CURLOPT_TIMEVALUE_LARGE:
133
0
      return &kOptionManifest[33];
134
0
    case curl::fuzzer::proto::CURLOPT_ALTSVC_CTRL:
135
0
      return &kOptionManifest[34];
136
0
    case curl::fuzzer::proto::CURLOPT_HSTS_CTRL:
137
0
      return &kOptionManifest[35];
138
0
    case curl::fuzzer::proto::CURLOPT_RANGE:
139
0
      return &kOptionManifest[36];
140
0
    case curl::fuzzer::proto::CURLOPT_RESUME_FROM_LARGE:
141
0
      return &kOptionManifest[37];
142
0
    case curl::fuzzer::proto::CURLOPT_FILETIME:
143
0
      return &kOptionManifest[38];
144
0
    case curl::fuzzer::proto::CURLOPT_REQUEST_TARGET:
145
0
      return &kOptionManifest[39];
146
0
    case curl::fuzzer::proto::CURLOPT_PATH_AS_IS:
147
0
      return &kOptionManifest[40];
148
0
    case curl::fuzzer::proto::CURLOPT_EXPECT_100_TIMEOUT_MS:
149
0
      return &kOptionManifest[41];
150
0
    case curl::fuzzer::proto::CURLOPT_KEEP_SENDING_ON_ERROR:
151
0
      return &kOptionManifest[42];
152
0
    case curl::fuzzer::proto::CURLOPT_POSTREDIR:
153
0
      return &kOptionManifest[43];
154
0
    case curl::fuzzer::proto::CURLOPT_TRANSFER_ENCODING:
155
0
      return &kOptionManifest[44];
156
0
    case curl::fuzzer::proto::CURLOPT_HTTP_TRANSFER_DECODING:
157
0
      return &kOptionManifest[45];
158
0
    case curl::fuzzer::proto::CURLOPT_HTTP_CONTENT_DECODING:
159
0
      return &kOptionManifest[46];
160
0
    case curl::fuzzer::proto::CURLOPT_IGNORE_CONTENT_LENGTH:
161
0
      return &kOptionManifest[47];
162
0
    case curl::fuzzer::proto::CURLOPT_DISALLOW_USERNAME_IN_URL:
163
0
      return &kOptionManifest[48];
164
0
    case curl::fuzzer::proto::CURLOPT_FRESH_CONNECT:
165
0
      return &kOptionManifest[49];
166
0
    case curl::fuzzer::proto::CURLOPT_FORBID_REUSE:
167
0
      return &kOptionManifest[50];
168
0
    case curl::fuzzer::proto::CURLOPT_MAXAGE_CONN:
169
0
      return &kOptionManifest[51];
170
0
    case curl::fuzzer::proto::CURLOPT_MAXLIFETIME_CONN:
171
0
      return &kOptionManifest[52];
172
0
    case curl::fuzzer::proto::CURLOPT_UPLOAD_BUFFERSIZE:
173
0
      return &kOptionManifest[53];
174
0
    case curl::fuzzer::proto::CURLOPT_MIME_OPTIONS:
175
0
      return &kOptionManifest[54];
176
0
    case curl::fuzzer::proto::CURLOPT_MAXFILESIZE_LARGE:
177
0
      return &kOptionManifest[55];
178
4
    case curl::fuzzer::proto::CURLOPT_BUFFERSIZE:
179
4
      return &kOptionManifest[56];
180
2.46k
    default:
181
2.46k
      return nullptr;
182
23.8k
  }
183
23.8k
}