Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/ssl_asn1.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | static uint64_t | - | ||||||||||||
5 | time_max(void) | - | ||||||||||||
6 | { | - | ||||||||||||
7 | if (sizeof(time_t) == sizeof(int32_t)
| 0-3 | ||||||||||||
8 | return never executed: return (2147483647) ; never executed: return (2147483647) ; | 0 | ||||||||||||
9 | (2147483647) never executed: return (2147483647) ; | 0 | ||||||||||||
10 | ; never executed: return (2147483647) ; | 0 | ||||||||||||
11 | if (sizeof(time_t) == sizeof(int64_t)
| 0-3 | ||||||||||||
12 | return executed 3 times by 1 test: return (9223372036854775807L) ; Executed by:
executed 3 times by 1 test: return (9223372036854775807L) ; Executed by:
| 3 | ||||||||||||
13 | (9223372036854775807L) executed 3 times by 1 test: return (9223372036854775807L) ; Executed by:
| 3 | ||||||||||||
14 | ; executed 3 times by 1 test: return (9223372036854775807L) ; Executed by:
| 3 | ||||||||||||
15 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
16 | } | - | ||||||||||||
17 | - | |||||||||||||
18 | static int | - | ||||||||||||
19 | SSL_SESSION_encode(SSL_SESSION *s, unsigned char **out, size_t *out_len, | - | ||||||||||||
20 | int ticket_encoding) | - | ||||||||||||
21 | { | - | ||||||||||||
22 | CBB cbb, session, cipher_suite, session_id, master_key, time, timeout; | - | ||||||||||||
23 | CBB peer_cert, sidctx, verify_result, hostname, lifetime, ticket, value; | - | ||||||||||||
24 | unsigned char *peer_cert_bytes = | - | ||||||||||||
25 | ((void *)0) | - | ||||||||||||
26 | ; | - | ||||||||||||
27 | int len, rv = 0; | - | ||||||||||||
28 | uint16_t cid; | - | ||||||||||||
29 | - | |||||||||||||
30 | if (!CBB_init(&cbb, 0)
| 0-67 | ||||||||||||
31 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
32 | - | |||||||||||||
33 | if (!CBB_add_asn1(&cbb, &session, (0x00 | 0x20 | 0x10))
| 0-67 | ||||||||||||
34 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
35 | - | |||||||||||||
36 | - | |||||||||||||
37 | if (!CBB_add_asn1_uint64(&session, 0x0001)
| 0-67 | ||||||||||||
38 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
39 | - | |||||||||||||
40 | - | |||||||||||||
41 | if (s->ssl_version < 0
| 0-67 | ||||||||||||
42 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
43 | if (!CBB_add_asn1_uint64(&session, s->ssl_version)
| 0-67 | ||||||||||||
44 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
45 | - | |||||||||||||
46 | - | |||||||||||||
47 | - | |||||||||||||
48 | cid = (uint16_t)(s->cipher_id & 0xffff); | - | ||||||||||||
49 | if (s->cipher !=
| 8-59 | ||||||||||||
50 | ((void *)0)
| 8-59 | ||||||||||||
51 | ) | - | ||||||||||||
52 | cid = ssl3_cipher_get_value(s->cipher); executed 59 times by 1 test: cid = ssl3_cipher_get_value(s->cipher); Executed by:
| 59 | ||||||||||||
53 | if (!CBB_add_asn1(&session, &cipher_suite, (0x00 | 0x00 | 0x4))
| 0-67 | ||||||||||||
54 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
55 | if (!CBB_add_u16(&cipher_suite, cid)
| 0-67 | ||||||||||||
56 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
57 | - | |||||||||||||
58 | - | |||||||||||||
59 | if (!CBB_add_asn1(&session, &session_id, (0x00 | 0x00 | 0x4))
| 0-67 | ||||||||||||
60 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
61 | if (!CBB_add_bytes(&session_id, s->session_id,
| 0-67 | ||||||||||||
62 | ticket_encoding ? 0 : s->session_id_length)
| 0-67 | ||||||||||||
63 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
64 | - | |||||||||||||
65 | - | |||||||||||||
66 | if (!CBB_add_asn1(&session, &master_key, (0x00 | 0x00 | 0x4))
| 0-67 | ||||||||||||
67 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
68 | if (!CBB_add_bytes(&master_key, s->master_key, s->master_key_length)
| 0-67 | ||||||||||||
69 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
70 | - | |||||||||||||
71 | - | |||||||||||||
72 | if (s->time != 0
| 5-62 | ||||||||||||
73 | if (s->time < 0
| 1-61 | ||||||||||||
74 | goto executed 1 time by 1 test: err;goto err; Executed by:
executed 1 time by 1 test: goto err; Executed by:
| 1 | ||||||||||||
75 | if (!CBB_add_asn1(&session, &time, ((0x20 | 0x80) | 1))
| 0-61 | ||||||||||||
76 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
77 | if (!CBB_add_asn1_uint64(&time, s->time)
| 0-61 | ||||||||||||
78 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
79 | } executed 61 times by 2 tests: end of block Executed by:
| 61 | ||||||||||||
80 | - | |||||||||||||
81 | - | |||||||||||||
82 | if (s->timeout != 0
| 4-62 | ||||||||||||
83 | if (s->timeout < 0
| 1-61 | ||||||||||||
84 | goto executed 1 time by 1 test: err;goto err; Executed by:
executed 1 time by 1 test: goto err; Executed by:
| 1 | ||||||||||||
85 | if (!CBB_add_asn1(&session, &timeout, ((0x20 | 0x80) | 2))
| 0-61 | ||||||||||||
86 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
87 | if (!CBB_add_asn1_uint64(&timeout, s->timeout)
| 0-61 | ||||||||||||
88 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
89 | } executed 61 times by 2 tests: end of block Executed by:
| 61 | ||||||||||||
90 | - | |||||||||||||
91 | - | |||||||||||||
92 | if (s->peer !=
| 9-56 | ||||||||||||
93 | ((void *)0)
| 9-56 | ||||||||||||
94 | ) { | - | ||||||||||||
95 | if ((
| 0-9 | ||||||||||||
96 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
97 | if (!CBB_add_asn1(&session, &peer_cert, ((0x20 | 0x80) | 3))
| 0-9 | ||||||||||||
98 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
99 | if (!CBB_add_bytes(&peer_cert, peer_cert_bytes, len)
| 0-9 | ||||||||||||
100 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
101 | } executed 9 times by 2 tests: end of block Executed by:
| 9 | ||||||||||||
102 | - | |||||||||||||
103 | - | |||||||||||||
104 | - | |||||||||||||
105 | if (!CBB_add_asn1(&session, &sidctx, ((0x20 | 0x80) | 4))
| 0-65 | ||||||||||||
106 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
107 | if (!CBB_add_asn1(&sidctx, &value, (0x00 | 0x00 | 0x4))
| 0-65 | ||||||||||||
108 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
109 | if (!CBB_add_bytes(&value, s->sid_ctx, s->sid_ctx_length)
| 0-65 | ||||||||||||
110 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
111 | - | |||||||||||||
112 | - | |||||||||||||
113 | if (s->verify_result != 0
| 3-62 | ||||||||||||
114 | if (s->verify_result < 0
| 0-3 | ||||||||||||
115 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
116 | if (!CBB_add_asn1(&session, &verify_result,
| 0-3 | ||||||||||||
117 | ((0x20 | 0x80) | 5))
| 0-3 | ||||||||||||
118 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
119 | if (!CBB_add_asn1_uint64(&verify_result, s->verify_result)
| 0-3 | ||||||||||||
120 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
121 | } executed 3 times by 2 tests: end of block Executed by:
| 3 | ||||||||||||
122 | - | |||||||||||||
123 | - | |||||||||||||
124 | if (s->tlsext_hostname !=
| 2-63 | ||||||||||||
125 | ((void *)0)
| 2-63 | ||||||||||||
126 | ) { | - | ||||||||||||
127 | if (!CBB_add_asn1(&session, &hostname, ((0x20 | 0x80) | 6))
| 0-2 | ||||||||||||
128 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
129 | if (!CBB_add_asn1(&hostname, &value, (0x00 | 0x00 | 0x4))
| 0-2 | ||||||||||||
130 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
131 | if (!CBB_add_bytes(&value, (const uint8_t *)s->tlsext_hostname,
| 0-2 | ||||||||||||
132 | strlen(s->tlsext_hostname))
| 0-2 | ||||||||||||
133 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
134 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||
135 | - | |||||||||||||
136 | - | |||||||||||||
137 | - | |||||||||||||
138 | - | |||||||||||||
139 | - | |||||||||||||
140 | if (s->tlsext_tick_lifetime_hint > 0
| 2-63 | ||||||||||||
141 | if (!CBB_add_asn1(&session, &lifetime, ((0x20 | 0x80) | 9))
| 0-2 | ||||||||||||
142 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
143 | if (!CBB_add_asn1_uint64(&lifetime,
| 0-2 | ||||||||||||
144 | s->tlsext_tick_lifetime_hint)
| 0-2 | ||||||||||||
145 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
146 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||
147 | - | |||||||||||||
148 | - | |||||||||||||
149 | if (s->tlsext_tick !=
| 2-63 | ||||||||||||
150 | ((void *)0)
| 2-63 | ||||||||||||
151 | ) { | - | ||||||||||||
152 | if (!CBB_add_asn1(&session, &ticket, ((0x20 | 0x80) | 10))
| 0-2 | ||||||||||||
153 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
154 | if (!CBB_add_asn1(&ticket, &value, (0x00 | 0x00 | 0x4))
| 0-2 | ||||||||||||
155 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
156 | if (!CBB_add_bytes(&value, s->tlsext_tick, s->tlsext_ticklen)
| 0-2 | ||||||||||||
157 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
158 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||
159 | - | |||||||||||||
160 | - | |||||||||||||
161 | - | |||||||||||||
162 | - | |||||||||||||
163 | if (!CBB_finish(&cbb, out, out_len)
| 0-65 | ||||||||||||
164 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
165 | - | |||||||||||||
166 | rv = 1; | - | ||||||||||||
167 | - | |||||||||||||
168 | err: code before this statement executed 65 times by 2 tests: err: Executed by:
| 65 | ||||||||||||
169 | CBB_cleanup(&cbb); | - | ||||||||||||
170 | free(peer_cert_bytes); | - | ||||||||||||
171 | - | |||||||||||||
172 | return executed 67 times by 2 tests: rv;return rv; Executed by:
executed 67 times by 2 tests: return rv; Executed by:
| 67 | ||||||||||||
173 | } | - | ||||||||||||
174 | - | |||||||||||||
175 | int | - | ||||||||||||
176 | SSL_SESSION_ticket(SSL_SESSION *ss, unsigned char **out, size_t *out_len) | - | ||||||||||||
177 | { | - | ||||||||||||
178 | if (ss ==
| 0-59 | ||||||||||||
179 | ((void *)0)
| 0-59 | ||||||||||||
180 | ) | - | ||||||||||||
181 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
182 | - | |||||||||||||
183 | if (ss->cipher ==
| 0-59 | ||||||||||||
184 | ((void *)0)
| 0-59 | ||||||||||||
185 | && ss->cipher_id == 0
| 0 | ||||||||||||
186 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
187 | - | |||||||||||||
188 | return executed 59 times by 1 test: SSL_SESSION_encode(ss, out, out_len, 1);return SSL_SESSION_encode(ss, out, out_len, 1); Executed by:
executed 59 times by 1 test: return SSL_SESSION_encode(ss, out, out_len, 1); Executed by:
| 59 | ||||||||||||
189 | } | - | ||||||||||||
190 | - | |||||||||||||
191 | int | - | ||||||||||||
192 | i2d_SSL_SESSION(SSL_SESSION *ss, unsigned char **pp) | - | ||||||||||||
193 | { | - | ||||||||||||
194 | unsigned char *data = | - | ||||||||||||
195 | ((void *)0) | - | ||||||||||||
196 | ; | - | ||||||||||||
197 | size_t data_len = 0; | - | ||||||||||||
198 | int rv = -1; | - | ||||||||||||
199 | - | |||||||||||||
200 | if (ss ==
| 0-8 | ||||||||||||
201 | ((void *)0)
| 0-8 | ||||||||||||
202 | ) | - | ||||||||||||
203 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
204 | - | |||||||||||||
205 | if (ss->cipher ==
| 0-8 | ||||||||||||
206 | ((void *)0)
| 0-8 | ||||||||||||
207 | && ss->cipher_id == 0
| 0-8 | ||||||||||||
208 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
209 | - | |||||||||||||
210 | if (!SSL_SESSION_encode(ss, &data, &data_len, 0)
| 2-6 | ||||||||||||
211 | goto executed 2 times by 1 test: err;goto err; Executed by:
executed 2 times by 1 test: goto err; Executed by:
| 2 | ||||||||||||
212 | - | |||||||||||||
213 | if (data_len > 0x7fffffff
| 0-6 | ||||||||||||
214 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
215 | - | |||||||||||||
216 | if (pp !=
| 3 | ||||||||||||
217 | ((void *)0)
| 3 | ||||||||||||
218 | ) { | - | ||||||||||||
219 | if (*
| 0-3 | ||||||||||||
220 | ((void *)0)
| 0-3 | ||||||||||||
221 | ) { | - | ||||||||||||
222 | *pp = data; | - | ||||||||||||
223 | data = | - | ||||||||||||
224 | ((void *)0) | - | ||||||||||||
225 | ; | - | ||||||||||||
226 | } never executed: else {end of block | 0 | ||||||||||||
227 | memcpy(*pp, data, data_len); | - | ||||||||||||
228 | *pp += data_len; | - | ||||||||||||
229 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||
230 | } | - | ||||||||||||
231 | - | |||||||||||||
232 | rv = (int)data_len; | - | ||||||||||||
233 | - | |||||||||||||
234 | err: code before this statement executed 6 times by 1 test: err: Executed by:
| 6 | ||||||||||||
235 | freezero(data, data_len); | - | ||||||||||||
236 | - | |||||||||||||
237 | return executed 8 times by 1 test: rv;return rv; Executed by:
executed 8 times by 1 test: return rv; Executed by:
| 8 | ||||||||||||
238 | } | - | ||||||||||||
239 | - | |||||||||||||
240 | SSL_SESSION * | - | ||||||||||||
241 | d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) | - | ||||||||||||
242 | { | - | ||||||||||||
243 | CBS cbs, session, cipher_suite, session_id, master_key, peer_cert; | - | ||||||||||||
244 | CBS hostname, ticket; | - | ||||||||||||
245 | uint64_t version, tls_version, stime, timeout, verify_result, lifetime; | - | ||||||||||||
246 | const unsigned char *peer_cert_bytes; | - | ||||||||||||
247 | uint16_t cipher_value; | - | ||||||||||||
248 | SSL_SESSION *s = | - | ||||||||||||
249 | ((void *)0) | - | ||||||||||||
250 | ; | - | ||||||||||||
251 | size_t data_len; | - | ||||||||||||
252 | int present; | - | ||||||||||||
253 | - | |||||||||||||
254 | if (a !=
| 0-3 | ||||||||||||
255 | ((void *)0)
| 0-3 | ||||||||||||
256 | ) | - | ||||||||||||
257 | s = *a; executed 3 times by 1 test: s = *a; Executed by:
| 3 | ||||||||||||
258 | - | |||||||||||||
259 | if (s ==
| 0-3 | ||||||||||||
260 | ((void *)0)
| 0-3 | ||||||||||||
261 | ) { | - | ||||||||||||
262 | if ((
| 0 | ||||||||||||
263 | ((void *)0)
| 0 | ||||||||||||
264 | ) { | - | ||||||||||||
265 | ERR_put_error(20,(0xfff),((1|64)),__FILE__,260); | - | ||||||||||||
266 | return never executed: (return ( ((void *)0) ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
267 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
268 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
269 | } | - | ||||||||||||
270 | } never executed: end of block | 0 | ||||||||||||
271 | - | |||||||||||||
272 | CBS_init(&cbs, *pp, length); | - | ||||||||||||
273 | - | |||||||||||||
274 | if (!CBS_get_asn1(&cbs, &session, (0x00 | 0x20 | 0x10))
| 0-3 | ||||||||||||
275 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
276 | - | |||||||||||||
277 | - | |||||||||||||
278 | if (!CBS_get_asn1_uint64(&session, &version)
| 0-3 | ||||||||||||
279 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
280 | if (version != 0x0001
| 0-3 | ||||||||||||
281 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
282 | - | |||||||||||||
283 | - | |||||||||||||
284 | if (!CBS_get_asn1_uint64(&session, &tls_version)
| 0-3 | ||||||||||||
285 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
286 | if (tls_version > 0x7fffffff
| 0-3 | ||||||||||||
287 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
288 | s->ssl_version = (int)tls_version; | - | ||||||||||||
289 | - | |||||||||||||
290 | - | |||||||||||||
291 | if (!CBS_get_asn1(&session, &cipher_suite, (0x00 | 0x00 | 0x4))
| 0-3 | ||||||||||||
292 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
293 | if (!CBS_get_u16(&cipher_suite, &cipher_value)
| 0-3 | ||||||||||||
294 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
295 | if (CBS_len(&cipher_suite) != 0
| 0-3 | ||||||||||||
296 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
297 | - | |||||||||||||
298 | - | |||||||||||||
299 | s->cipher = | - | ||||||||||||
300 | ((void *)0) | - | ||||||||||||
301 | ; | - | ||||||||||||
302 | s->cipher_id = 0x03000000 | cipher_value; | - | ||||||||||||
303 | - | |||||||||||||
304 | - | |||||||||||||
305 | if (!CBS_get_asn1(&session, &session_id, (0x00 | 0x00 | 0x4))
| 0-3 | ||||||||||||
306 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
307 | if (!CBS_write_bytes(&session_id, s->session_id, sizeof(s->session_id),
| 0-3 | ||||||||||||
308 | &data_len)
| 0-3 | ||||||||||||
309 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
310 | if (data_len >
| 0-3 | ||||||||||||
311 | (0x7fffffff * 2U + 1U)
| 0-3 | ||||||||||||
312 | ) | - | ||||||||||||
313 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
314 | s->session_id_length = (unsigned int)data_len; | - | ||||||||||||
315 | - | |||||||||||||
316 | - | |||||||||||||
317 | if (!CBS_get_asn1(&session, &master_key, (0x00 | 0x00 | 0x4))
| 0-3 | ||||||||||||
318 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
319 | if (!CBS_write_bytes(&master_key, s->master_key, sizeof(s->master_key),
| 0-3 | ||||||||||||
320 | &data_len)
| 0-3 | ||||||||||||
321 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
322 | if (data_len > 0x7fffffff
| 0-3 | ||||||||||||
323 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
324 | s->master_key_length = (int)data_len; | - | ||||||||||||
325 | - | |||||||||||||
326 | - | |||||||||||||
327 | s->time = time( | - | ||||||||||||
328 | ((void *)0) | - | ||||||||||||
329 | ); | - | ||||||||||||
330 | if (!CBS_get_optional_asn1_uint64(&session, &stime, ((0x20 | 0x80) | 1),
| 0-3 | ||||||||||||
331 | 0)
| 0-3 | ||||||||||||
332 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
333 | if (stime > time_max()
| 0-3 | ||||||||||||
334 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
335 | if (stime != 0
| 1-2 | ||||||||||||
336 | s->time = (time_t)stime; executed 1 time by 1 test: s->time = (time_t)stime; Executed by:
| 1 | ||||||||||||
337 | - | |||||||||||||
338 | - | |||||||||||||
339 | s->timeout = 3; | - | ||||||||||||
340 | if (!CBS_get_optional_asn1_uint64(&session, &timeout,
| 0-3 | ||||||||||||
341 | ((0x20 | 0x80) | 2), 0)
| 0-3 | ||||||||||||
342 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
343 | if (timeout > 0x7fffffffffffffffL
| 0-3 | ||||||||||||
344 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
345 | if (timeout != 0
| 1-2 | ||||||||||||
346 | s->timeout = (long)timeout; executed 1 time by 1 test: s->timeout = (long)timeout; Executed by:
| 1 | ||||||||||||
347 | - | |||||||||||||
348 | - | |||||||||||||
349 | X509_free(s->peer); | - | ||||||||||||
350 | s->peer = | - | ||||||||||||
351 | ((void *)0) | - | ||||||||||||
352 | ; | - | ||||||||||||
353 | if (!CBS_get_optional_asn1(&session, &peer_cert, &present,
| 0-3 | ||||||||||||
354 | ((0x20 | 0x80) | 3))
| 0-3 | ||||||||||||
355 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
356 | if (present
| 1-2 | ||||||||||||
357 | data_len = CBS_len(&peer_cert); | - | ||||||||||||
358 | if (data_len > 0x7fffffffffffffffL
| 0-1 | ||||||||||||
359 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
360 | peer_cert_bytes = CBS_data(&peer_cert); | - | ||||||||||||
361 | if (d2i_X509(&s->peer, &peer_cert_bytes,
| 0-1 | ||||||||||||
362 | (long)data_len) ==
| 0-1 | ||||||||||||
363 | ((void *)0)
| 0-1 | ||||||||||||
364 | ) | - | ||||||||||||
365 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
366 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||
367 | - | |||||||||||||
368 | - | |||||||||||||
369 | s->sid_ctx_length = 0; | - | ||||||||||||
370 | if (!CBS_get_optional_asn1_octet_string(&session, &session_id, &present,
| 0-3 | ||||||||||||
371 | ((0x20 | 0x80) | 4))
| 0-3 | ||||||||||||
372 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
373 | if (present
| 0-3 | ||||||||||||
374 | if (!CBS_write_bytes(&session_id, (uint8_t *)&s->sid_ctx,
| 0-3 | ||||||||||||
375 | sizeof(s->sid_ctx), &data_len)
| 0-3 | ||||||||||||
376 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
377 | if (data_len >
| 0-3 | ||||||||||||
378 | (0x7fffffff * 2U + 1U)
| 0-3 | ||||||||||||
379 | ) | - | ||||||||||||
380 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
381 | s->sid_ctx_length = (unsigned int)data_len; | - | ||||||||||||
382 | } executed 3 times by 1 test: end of block Executed by:
| 3 | ||||||||||||
383 | - | |||||||||||||
384 | - | |||||||||||||
385 | s->verify_result = 0; | - | ||||||||||||
386 | if (!CBS_get_optional_asn1_uint64(&session, &verify_result,
| 0-3 | ||||||||||||
387 | ((0x20 | 0x80) | 5), 0)
| 0-3 | ||||||||||||
388 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
389 | if (verify_result > 0x7fffffffffffffffL
| 0-3 | ||||||||||||
390 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
391 | s->verify_result = (long)verify_result; | - | ||||||||||||
392 | - | |||||||||||||
393 | - | |||||||||||||
394 | free(s->tlsext_hostname); | - | ||||||||||||
395 | s->tlsext_hostname = | - | ||||||||||||
396 | ((void *)0) | - | ||||||||||||
397 | ; | - | ||||||||||||
398 | if (!CBS_get_optional_asn1_octet_string(&session, &hostname, &present,
| 0-3 | ||||||||||||
399 | ((0x20 | 0x80) | 6))
| 0-3 | ||||||||||||
400 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
401 | if (present
| 1-2 | ||||||||||||
402 | if (CBS_contains_zero_byte(&hostname)
| 0-1 | ||||||||||||
403 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
404 | if (!CBS_strdup(&hostname, &s->tlsext_hostname)
| 0-1 | ||||||||||||
405 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
406 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||
407 | - | |||||||||||||
408 | - | |||||||||||||
409 | - | |||||||||||||
410 | - | |||||||||||||
411 | - | |||||||||||||
412 | s->tlsext_tick_lifetime_hint = 0; | - | ||||||||||||
413 | - | |||||||||||||
414 | if (s->tlsext_ticklen > 0
| 0-3 | ||||||||||||
415 | s->tlsext_tick_lifetime_hint = -1; never executed: s->tlsext_tick_lifetime_hint = -1; | 0 | ||||||||||||
416 | if (!CBS_get_optional_asn1_uint64(&session, &lifetime,
| 0-3 | ||||||||||||
417 | ((0x20 | 0x80) | 9), 0)
| 0-3 | ||||||||||||
418 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
419 | if (lifetime > 0x7fffffffffffffffL
| 0-3 | ||||||||||||
420 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
421 | if (lifetime > 0
| 1-2 | ||||||||||||
422 | s->tlsext_tick_lifetime_hint = (long)lifetime; executed 1 time by 1 test: s->tlsext_tick_lifetime_hint = (long)lifetime; Executed by:
| 1 | ||||||||||||
423 | - | |||||||||||||
424 | - | |||||||||||||
425 | free(s->tlsext_tick); | - | ||||||||||||
426 | s->tlsext_tick = | - | ||||||||||||
427 | ((void *)0) | - | ||||||||||||
428 | ; | - | ||||||||||||
429 | if (!CBS_get_optional_asn1_octet_string(&session, &ticket, &present,
| 0-3 | ||||||||||||
430 | ((0x20 | 0x80) | 10))
| 0-3 | ||||||||||||
431 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
432 | if (present
| 1-2 | ||||||||||||
433 | if (!CBS_stow(&ticket, &s->tlsext_tick, &s->tlsext_ticklen)
| 0-1 | ||||||||||||
434 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
435 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||
436 | - | |||||||||||||
437 | - | |||||||||||||
438 | - | |||||||||||||
439 | - | |||||||||||||
440 | *pp = CBS_data(&cbs); | - | ||||||||||||
441 | - | |||||||||||||
442 | if (a !=
| 0-3 | ||||||||||||
443 | ((void *)0)
| 0-3 | ||||||||||||
444 | ) | - | ||||||||||||
445 | * executed 3 times by 1 test: a = s;*a = s; Executed by:
executed 3 times by 1 test: *a = s; Executed by:
| 3 | ||||||||||||
446 | - | |||||||||||||
447 | return executed 3 times by 1 test: (s);return (s); Executed by:
executed 3 times by 1 test: return (s); Executed by:
| 3 | ||||||||||||
448 | - | |||||||||||||
449 | err: | - | ||||||||||||
450 | ERR_asprintf_error_data("offset=%d", (int)(CBS_data(&cbs) - *pp)); | - | ||||||||||||
451 | - | |||||||||||||
452 | if (s !=
| 0 | ||||||||||||
453 | ((void *)0)
| 0 | ||||||||||||
454 | && (a ==
| 0 | ||||||||||||
455 | ((void *)0)
| 0 | ||||||||||||
456 | || *
| 0 | ||||||||||||
457 | SSL_SESSION_free(s); never executed: SSL_SESSION_free(s); | 0 | ||||||||||||
458 | - | |||||||||||||
459 | return never executed: (return ( ((void *)0) ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
460 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
461 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
462 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |