Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ocsp/ocsp_ht.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | struct ocsp_req_ctx_st { | - | ||||||||||||||||||||||||
8 | int state; | - | ||||||||||||||||||||||||
9 | unsigned char *iobuf; | - | ||||||||||||||||||||||||
10 | int iobuflen; | - | ||||||||||||||||||||||||
11 | BIO *io; | - | ||||||||||||||||||||||||
12 | BIO *mem; | - | ||||||||||||||||||||||||
13 | unsigned long asn1_len; | - | ||||||||||||||||||||||||
14 | }; | - | ||||||||||||||||||||||||
15 | static int parse_http_line1(char *line); | - | ||||||||||||||||||||||||
16 | - | |||||||||||||||||||||||||
17 | void | - | ||||||||||||||||||||||||
18 | OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx) | - | ||||||||||||||||||||||||
19 | { | - | ||||||||||||||||||||||||
20 | if (rctx ==
| 0-1 | ||||||||||||||||||||||||
21 | ((void *)0)
| 0-1 | ||||||||||||||||||||||||
22 | ) | - | ||||||||||||||||||||||||
23 | return; executed 1 time by 1 test: return; Executed by:
| 1 | ||||||||||||||||||||||||
24 | - | |||||||||||||||||||||||||
25 | BIO_free(rctx->mem); | - | ||||||||||||||||||||||||
26 | free(rctx->iobuf); | - | ||||||||||||||||||||||||
27 | free(rctx); | - | ||||||||||||||||||||||||
28 | } never executed: end of block | 0 | ||||||||||||||||||||||||
29 | - | |||||||||||||||||||||||||
30 | int | - | ||||||||||||||||||||||||
31 | OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req) | - | ||||||||||||||||||||||||
32 | { | - | ||||||||||||||||||||||||
33 | if (BIO_printf(rctx->mem, "Content-Type: application/ocsp-request\r\n"
| 0 | ||||||||||||||||||||||||
34 | "Content-Length: %d\r\n\r\n", i2d_OCSP_REQUEST(req,
| 0 | ||||||||||||||||||||||||
35 | ((void *)0)
| 0 | ||||||||||||||||||||||||
36 | )) <= 0
| 0 | ||||||||||||||||||||||||
37 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
38 | if (i2d_OCSP_REQUEST_bio(rctx->mem, req) <= 0
| 0 | ||||||||||||||||||||||||
39 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
40 | rctx->state = (6 | 0x1000); | - | ||||||||||||||||||||||||
41 | rctx->asn1_len = BIO_ctrl(rctx->mem,3,0,(char *) | - | ||||||||||||||||||||||||
42 | ((void *)0) | - | ||||||||||||||||||||||||
43 | ); | - | ||||||||||||||||||||||||
44 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
45 | } | - | ||||||||||||||||||||||||
46 | - | |||||||||||||||||||||||||
47 | int | - | ||||||||||||||||||||||||
48 | OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, const char *name, | - | ||||||||||||||||||||||||
49 | const char *value) | - | ||||||||||||||||||||||||
50 | { | - | ||||||||||||||||||||||||
51 | if (!name
| 0 | ||||||||||||||||||||||||
52 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
53 | if (BIO_puts(rctx->mem, name) <= 0
| 0 | ||||||||||||||||||||||||
54 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
55 | if (value
| 0 | ||||||||||||||||||||||||
56 | if (BIO_write(rctx->mem, ": ", 2) != 2
| 0 | ||||||||||||||||||||||||
57 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
58 | if (BIO_puts(rctx->mem, value) <= 0
| 0 | ||||||||||||||||||||||||
59 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
60 | } never executed: end of block | 0 | ||||||||||||||||||||||||
61 | if (BIO_write(rctx->mem, "\r\n", 2) != 2
| 0 | ||||||||||||||||||||||||
62 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
63 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
64 | } | - | ||||||||||||||||||||||||
65 | - | |||||||||||||||||||||||||
66 | OCSP_REQ_CTX * | - | ||||||||||||||||||||||||
67 | OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, int maxline) | - | ||||||||||||||||||||||||
68 | { | - | ||||||||||||||||||||||||
69 | OCSP_REQ_CTX *rctx; | - | ||||||||||||||||||||||||
70 | - | |||||||||||||||||||||||||
71 | rctx = malloc(sizeof(OCSP_REQ_CTX)); | - | ||||||||||||||||||||||||
72 | if (rctx ==
| 0 | ||||||||||||||||||||||||
73 | ((void *)0)
| 0 | ||||||||||||||||||||||||
74 | ) | - | ||||||||||||||||||||||||
75 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
76 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
77 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
78 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
79 | if ((
| 0 | ||||||||||||||||||||||||
80 | ((void *)0)
| 0 | ||||||||||||||||||||||||
81 | ) { | - | ||||||||||||||||||||||||
82 | free(rctx); | - | ||||||||||||||||||||||||
83 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
84 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
85 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
86 | } | - | ||||||||||||||||||||||||
87 | rctx->io = io; | - | ||||||||||||||||||||||||
88 | rctx->asn1_len = 0; | - | ||||||||||||||||||||||||
89 | if (maxline > 0
| 0 | ||||||||||||||||||||||||
90 | rctx->iobuflen = maxline; never executed: rctx->iobuflen = maxline; | 0 | ||||||||||||||||||||||||
91 | else | - | ||||||||||||||||||||||||
92 | rctx->iobuflen = 4096; never executed: ;rctx->iobuflen = 4096; | 0 | ||||||||||||||||||||||||
93 | rctx->iobuf = malloc(rctx->iobuflen); | - | ||||||||||||||||||||||||
94 | if (!rctx->iobuf
| 0 | ||||||||||||||||||||||||
95 | BIO_free(rctx->mem); | - | ||||||||||||||||||||||||
96 | free(rctx); | - | ||||||||||||||||||||||||
97 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
98 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
99 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
100 | } | - | ||||||||||||||||||||||||
101 | if (!path
| 0 | ||||||||||||||||||||||||
102 | path = "/"; never executed: path = "/"; | 0 | ||||||||||||||||||||||||
103 | - | |||||||||||||||||||||||||
104 | if (BIO_printf(rctx->mem, "POST %s HTTP/1.0\r\n", path) <= 0
| 0 | ||||||||||||||||||||||||
105 | free(rctx->iobuf); | - | ||||||||||||||||||||||||
106 | BIO_free(rctx->mem); | - | ||||||||||||||||||||||||
107 | free(rctx); | - | ||||||||||||||||||||||||
108 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
109 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
110 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
111 | } | - | ||||||||||||||||||||||||
112 | - | |||||||||||||||||||||||||
113 | if (req
| 0 | ||||||||||||||||||||||||
114 | free(rctx->iobuf); | - | ||||||||||||||||||||||||
115 | BIO_free(rctx->mem); | - | ||||||||||||||||||||||||
116 | free(rctx); | - | ||||||||||||||||||||||||
117 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
118 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
119 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
120 | } | - | ||||||||||||||||||||||||
121 | - | |||||||||||||||||||||||||
122 | return never executed: rctx;return rctx; never executed: return rctx; | 0 | ||||||||||||||||||||||||
123 | } | - | ||||||||||||||||||||||||
124 | - | |||||||||||||||||||||||||
125 | - | |||||||||||||||||||||||||
126 | - | |||||||||||||||||||||||||
127 | - | |||||||||||||||||||||||||
128 | - | |||||||||||||||||||||||||
129 | static int | - | ||||||||||||||||||||||||
130 | parse_http_line1(char *line) | - | ||||||||||||||||||||||||
131 | { | - | ||||||||||||||||||||||||
132 | int retcode; | - | ||||||||||||||||||||||||
133 | char *p, *q, *r; | - | ||||||||||||||||||||||||
134 | - | |||||||||||||||||||||||||
135 | - | |||||||||||||||||||||||||
136 | for (p = line; *
| 0 | ||||||||||||||||||||||||
137 | ((*__ctype_b_loc ())[(int) ((
| 0 | ||||||||||||||||||||||||
138 | (unsigned char)*p
| 0 | ||||||||||||||||||||||||
139 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
140 | ; p++) | - | ||||||||||||||||||||||||
141 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
142 | if (!*p
| 0 | ||||||||||||||||||||||||
143 | ERR_put_error(39,(0xfff),(115),__FILE__,210); | - | ||||||||||||||||||||||||
144 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
145 | } | - | ||||||||||||||||||||||||
146 | - | |||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||
148 | while (*
| 0 | ||||||||||||||||||||||||
149 | ((*
| 0 | ||||||||||||||||||||||||
150 | (unsigned char)*p
| 0 | ||||||||||||||||||||||||
151 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
152 | ) | - | ||||||||||||||||||||||||
153 | p++; never executed: p++; | 0 | ||||||||||||||||||||||||
154 | if (!*p
| 0 | ||||||||||||||||||||||||
155 | ERR_put_error(39,(0xfff),(115),__FILE__,218); | - | ||||||||||||||||||||||||
156 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
157 | } | - | ||||||||||||||||||||||||
158 | - | |||||||||||||||||||||||||
159 | - | |||||||||||||||||||||||||
160 | for (q = p; *
| 0 | ||||||||||||||||||||||||
161 | ((*__ctype_b_loc ())[(int) ((
| 0 | ||||||||||||||||||||||||
162 | (unsigned char)*q
| 0 | ||||||||||||||||||||||||
163 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
164 | ; q++) | - | ||||||||||||||||||||||||
165 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
166 | if (!*q
| 0 | ||||||||||||||||||||||||
167 | ERR_put_error(39,(0xfff),(115),__FILE__,226); | - | ||||||||||||||||||||||||
168 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
169 | } | - | ||||||||||||||||||||||||
170 | - | |||||||||||||||||||||||||
171 | - | |||||||||||||||||||||||||
172 | *q++ = 0; | - | ||||||||||||||||||||||||
173 | - | |||||||||||||||||||||||||
174 | - | |||||||||||||||||||||||||
175 | retcode = strtoul(p, &r, 10); | - | ||||||||||||||||||||||||
176 | - | |||||||||||||||||||||||||
177 | if (*
| 0 | ||||||||||||||||||||||||
178 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||
180 | - | |||||||||||||||||||||||||
181 | while (*
| 0 | ||||||||||||||||||||||||
182 | ((*
| 0 | ||||||||||||||||||||||||
183 | (unsigned char)*q
| 0 | ||||||||||||||||||||||||
184 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
185 | ) | - | ||||||||||||||||||||||||
186 | q++; never executed: q++; | 0 | ||||||||||||||||||||||||
187 | if (*
| 0 | ||||||||||||||||||||||||
188 | - | |||||||||||||||||||||||||
189 | - | |||||||||||||||||||||||||
190 | - | |||||||||||||||||||||||||
191 | - | |||||||||||||||||||||||||
192 | for (r = q + strlen(q) - 1; | - | ||||||||||||||||||||||||
193 | ((*
| 0 | ||||||||||||||||||||||||
194 | (unsigned char)*r
| 0 | ||||||||||||||||||||||||
195 | ))] & (unsigned short int) _ISspace)
| 0 | ||||||||||||||||||||||||
196 | ; r--) | - | ||||||||||||||||||||||||
197 | * never executed: r = 0;*r = 0; never executed: *r = 0; | 0 | ||||||||||||||||||||||||
198 | } never executed: end of block | 0 | ||||||||||||||||||||||||
199 | if (retcode != 200
| 0 | ||||||||||||||||||||||||
200 | ERR_put_error(39,(0xfff),(114),__FILE__,251); | - | ||||||||||||||||||||||||
201 | if (!*q
| 0 | ||||||||||||||||||||||||
202 | ERR_asprintf_error_data("Code=%s", p); never executed: ERR_asprintf_error_data("Code=%s", p); | 0 | ||||||||||||||||||||||||
203 | else | - | ||||||||||||||||||||||||
204 | ERR_asprintf_error_data("Code=%s,Reason=%s", p, q); never executed: ERR_asprintf_error_data("Code=%s,Reason=%s", p, q); | 0 | ||||||||||||||||||||||||
205 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
206 | } | - | ||||||||||||||||||||||||
207 | - | |||||||||||||||||||||||||
208 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
209 | } | - | ||||||||||||||||||||||||
210 | - | |||||||||||||||||||||||||
211 | int | - | ||||||||||||||||||||||||
212 | OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) | - | ||||||||||||||||||||||||
213 | { | - | ||||||||||||||||||||||||
214 | int i, n; | - | ||||||||||||||||||||||||
215 | const unsigned char *p; | - | ||||||||||||||||||||||||
216 | - | |||||||||||||||||||||||||
217 | next_io: code before this statement never executed: next_io: | 0 | ||||||||||||||||||||||||
218 | if (!(rctx->state & 0x1000)
| 0 | ||||||||||||||||||||||||
219 | n = BIO_read(rctx->io, rctx->iobuf, rctx->iobuflen); | - | ||||||||||||||||||||||||
220 | - | |||||||||||||||||||||||||
221 | if (n <= 0
| 0 | ||||||||||||||||||||||||
222 | if (BIO_test_flags(rctx->io, 0x08)
| 0 | ||||||||||||||||||||||||
223 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
224 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
225 | } | - | ||||||||||||||||||||||||
226 | - | |||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||
228 | if (BIO_write(rctx->mem, rctx->iobuf, n) != n
| 0 | ||||||||||||||||||||||||
229 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
230 | } never executed: end of block | 0 | ||||||||||||||||||||||||
231 | - | |||||||||||||||||||||||||
232 | switch (rctx->state) { | - | ||||||||||||||||||||||||
233 | case never executed: (6 | 0x1000):case (6 | 0x1000): never executed: case (6 | 0x1000): | 0 | ||||||||||||||||||||||||
234 | n = BIO_ctrl(rctx->mem,3,0,(char *)&p); | - | ||||||||||||||||||||||||
235 | i = BIO_write(rctx->io, | - | ||||||||||||||||||||||||
236 | p + (n - rctx->asn1_len), rctx->asn1_len); | - | ||||||||||||||||||||||||
237 | if (i <= 0
| 0 | ||||||||||||||||||||||||
238 | if (BIO_test_flags(rctx->io, 0x08)
| 0 | ||||||||||||||||||||||||
239 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
240 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
241 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
242 | } | - | ||||||||||||||||||||||||
243 | - | |||||||||||||||||||||||||
244 | rctx->asn1_len -= i; | - | ||||||||||||||||||||||||
245 | if (rctx->asn1_len > 0
| 0 | ||||||||||||||||||||||||
246 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
247 | - | |||||||||||||||||||||||||
248 | rctx->state = (7 | 0x1000); | - | ||||||||||||||||||||||||
249 | - | |||||||||||||||||||||||||
250 | (void)(int)BIO_ctrl(rctx->mem,1,0, | - | ||||||||||||||||||||||||
251 | ((void *)0) | - | ||||||||||||||||||||||||
252 | ); | - | ||||||||||||||||||||||||
253 | - | |||||||||||||||||||||||||
254 | - | |||||||||||||||||||||||||
255 | case never executed: (7 | 0x1000):case (7 | 0x1000): never executed: case (7 | 0x1000): code before this statement never executed: case (7 | 0x1000): | 0 | ||||||||||||||||||||||||
256 | i = (int)BIO_ctrl(rctx->io,11,0, | - | ||||||||||||||||||||||||
257 | ((void *)0) | - | ||||||||||||||||||||||||
258 | ); | - | ||||||||||||||||||||||||
259 | if (i > 0
| 0 | ||||||||||||||||||||||||
260 | rctx->state = 1; | - | ||||||||||||||||||||||||
261 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
262 | } | - | ||||||||||||||||||||||||
263 | - | |||||||||||||||||||||||||
264 | if (BIO_test_flags(rctx->io, 0x08)
| 0 | ||||||||||||||||||||||||
265 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
266 | - | |||||||||||||||||||||||||
267 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
268 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
269 | - | |||||||||||||||||||||||||
270 | case never executed: (0 | 0x1000):case (0 | 0x1000): never executed: case (0 | 0x1000): | 0 | ||||||||||||||||||||||||
271 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
272 | - | |||||||||||||||||||||||||
273 | case never executed: 1:case 1: never executed: case 1: | 0 | ||||||||||||||||||||||||
274 | case never executed: 2:case 2: never executed: case 2: | 0 | ||||||||||||||||||||||||
275 | - | |||||||||||||||||||||||||
276 | next_line: | - | ||||||||||||||||||||||||
277 | - | |||||||||||||||||||||||||
278 | - | |||||||||||||||||||||||||
279 | - | |||||||||||||||||||||||||
280 | - | |||||||||||||||||||||||||
281 | n = BIO_ctrl(rctx->mem,3,0,(char *)&p); | - | ||||||||||||||||||||||||
282 | if ((
| 0 | ||||||||||||||||||||||||
283 | if (n >= rctx->iobuflen
| 0 | ||||||||||||||||||||||||
284 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
285 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
286 | } | - | ||||||||||||||||||||||||
287 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
288 | } | - | ||||||||||||||||||||||||
289 | n = BIO_gets(rctx->mem, (char *)rctx->iobuf, rctx->iobuflen); | - | ||||||||||||||||||||||||
290 | if (n <= 0
| 0 | ||||||||||||||||||||||||
291 | if (BIO_test_flags(rctx->mem, 0x08)
| 0 | ||||||||||||||||||||||||
292 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
293 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
294 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
295 | } | - | ||||||||||||||||||||||||
296 | - | |||||||||||||||||||||||||
297 | - | |||||||||||||||||||||||||
298 | if (n == rctx->iobuflen
| 0 | ||||||||||||||||||||||||
299 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
300 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
301 | } | - | ||||||||||||||||||||||||
302 | - | |||||||||||||||||||||||||
303 | - | |||||||||||||||||||||||||
304 | if (rctx->state == 1
| 0 | ||||||||||||||||||||||||
305 | if (parse_http_line1((char *)rctx->iobuf)
| 0 | ||||||||||||||||||||||||
306 | rctx->state = 2; | - | ||||||||||||||||||||||||
307 | goto never executed: next_line;goto next_line; never executed: goto next_line; | 0 | ||||||||||||||||||||||||
308 | } else { | - | ||||||||||||||||||||||||
309 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
310 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
311 | } | - | ||||||||||||||||||||||||
312 | } else { | - | ||||||||||||||||||||||||
313 | - | |||||||||||||||||||||||||
314 | for (p = rctx->iobuf; *
| 0 | ||||||||||||||||||||||||
315 | if ((*
| 0 | ||||||||||||||||||||||||
316 | break; never executed: break; | 0 | ||||||||||||||||||||||||
317 | } never executed: end of block | 0 | ||||||||||||||||||||||||
318 | if (*
| 0 | ||||||||||||||||||||||||
319 | goto never executed: next_line;goto next_line; never executed: goto next_line; | 0 | ||||||||||||||||||||||||
320 | - | |||||||||||||||||||||||||
321 | rctx->state = 3; | - | ||||||||||||||||||||||||
322 | } never executed: end of block | 0 | ||||||||||||||||||||||||
323 | - | |||||||||||||||||||||||||
324 | - | |||||||||||||||||||||||||
325 | case never executed: 3:case 3: never executed: case 3: code before this statement never executed: case 3: | 0 | ||||||||||||||||||||||||
326 | - | |||||||||||||||||||||||||
327 | - | |||||||||||||||||||||||||
328 | - | |||||||||||||||||||||||||
329 | - | |||||||||||||||||||||||||
330 | n = BIO_ctrl(rctx->mem,3,0,(char *)&p); | - | ||||||||||||||||||||||||
331 | if (n < 2
| 0 | ||||||||||||||||||||||||
332 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
333 | - | |||||||||||||||||||||||||
334 | - | |||||||||||||||||||||||||
335 | if (*
| 0 | ||||||||||||||||||||||||
336 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
337 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
338 | } | - | ||||||||||||||||||||||||
339 | - | |||||||||||||||||||||||||
340 | - | |||||||||||||||||||||||||
341 | if (*
| 0 | ||||||||||||||||||||||||
342 | - | |||||||||||||||||||||||||
343 | - | |||||||||||||||||||||||||
344 | - | |||||||||||||||||||||||||
345 | if (n < 6
| 0 | ||||||||||||||||||||||||
346 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
347 | n = *p & 0x7F; | - | ||||||||||||||||||||||||
348 | - | |||||||||||||||||||||||||
349 | if (!n
| 0 | ||||||||||||||||||||||||
350 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
351 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
352 | } | - | ||||||||||||||||||||||||
353 | p++; | - | ||||||||||||||||||||||||
354 | rctx->asn1_len = 0; | - | ||||||||||||||||||||||||
355 | for (i = 0; i < n
| 0 | ||||||||||||||||||||||||
356 | rctx->asn1_len <<= 8; | - | ||||||||||||||||||||||||
357 | rctx->asn1_len |= *p++; | - | ||||||||||||||||||||||||
358 | } never executed: end of block | 0 | ||||||||||||||||||||||||
359 | - | |||||||||||||||||||||||||
360 | if (rctx->asn1_len > (100 * 1024)
| 0 | ||||||||||||||||||||||||
361 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
362 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
363 | } | - | ||||||||||||||||||||||||
364 | - | |||||||||||||||||||||||||
365 | rctx->asn1_len += n + 2; | - | ||||||||||||||||||||||||
366 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
367 | rctx->asn1_len = *p + 2; never executed: rctx->asn1_len = *p + 2; | 0 | ||||||||||||||||||||||||
368 | - | |||||||||||||||||||||||||
369 | rctx->state = 4; | - | ||||||||||||||||||||||||
370 | - | |||||||||||||||||||||||||
371 | - | |||||||||||||||||||||||||
372 | - | |||||||||||||||||||||||||
373 | case never executed: 4:case 4: never executed: case 4: code before this statement never executed: case 4: | 0 | ||||||||||||||||||||||||
374 | n = BIO_ctrl(rctx->mem,3,0,(char *)&p); | - | ||||||||||||||||||||||||
375 | if (n < (int)rctx->asn1_len
| 0 | ||||||||||||||||||||||||
376 | goto never executed: next_io;goto next_io; never executed: goto next_io; | 0 | ||||||||||||||||||||||||
377 | - | |||||||||||||||||||||||||
378 | *presp = d2i_OCSP_RESPONSE( | - | ||||||||||||||||||||||||
379 | ((void *)0) | - | ||||||||||||||||||||||||
380 | , &p, rctx->asn1_len); | - | ||||||||||||||||||||||||
381 | if (*
| 0 | ||||||||||||||||||||||||
382 | rctx->state = (8 | 0x1000); | - | ||||||||||||||||||||||||
383 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
384 | } | - | ||||||||||||||||||||||||
385 | - | |||||||||||||||||||||||||
386 | rctx->state = (0 | 0x1000); | - | ||||||||||||||||||||||||
387 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
388 | - | |||||||||||||||||||||||||
389 | case never executed: (8 | 0x1000):case (8 | 0x1000): never executed: case (8 | 0x1000): | 0 | ||||||||||||||||||||||||
390 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
391 | } | - | ||||||||||||||||||||||||
392 | - | |||||||||||||||||||||||||
393 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
394 | } | - | ||||||||||||||||||||||||
395 | - | |||||||||||||||||||||||||
396 | - | |||||||||||||||||||||||||
397 | OCSP_RESPONSE * | - | ||||||||||||||||||||||||
398 | OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req) | - | ||||||||||||||||||||||||
399 | { | - | ||||||||||||||||||||||||
400 | OCSP_RESPONSE *resp = | - | ||||||||||||||||||||||||
401 | ((void *)0) | - | ||||||||||||||||||||||||
402 | ; | - | ||||||||||||||||||||||||
403 | OCSP_REQ_CTX *ctx; | - | ||||||||||||||||||||||||
404 | int rv; | - | ||||||||||||||||||||||||
405 | - | |||||||||||||||||||||||||
406 | ctx = OCSP_sendreq_new(b, path, req, -1); | - | ||||||||||||||||||||||||
407 | if (ctx ==
| 0 | ||||||||||||||||||||||||
408 | ((void *)0)
| 0 | ||||||||||||||||||||||||
409 | ) | - | ||||||||||||||||||||||||
410 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
411 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
412 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
413 | - | |||||||||||||||||||||||||
414 | do { | - | ||||||||||||||||||||||||
415 | rv = OCSP_sendreq_nbio(&resp, ctx); | - | ||||||||||||||||||||||||
416 | } never executed: while ((end of block
| 0 | ||||||||||||||||||||||||
417 | - | |||||||||||||||||||||||||
418 | OCSP_REQ_CTX_free(ctx); | - | ||||||||||||||||||||||||
419 | - | |||||||||||||||||||||||||
420 | if (rv
| 0 | ||||||||||||||||||||||||
421 | return never executed: resp;return resp; never executed: return resp; | 0 | ||||||||||||||||||||||||
422 | - | |||||||||||||||||||||||||
423 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
424 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
425 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
426 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |