OpenCoverage

bio_ssl.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/bio_ssl.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4static int ssl_write(BIO *h, const char *buf, int num);-
5static int ssl_read(BIO *h, char *buf, int size);-
6static int ssl_puts(BIO *h, const char *str);-
7static long ssl_ctrl(BIO *h, int cmd, long arg1, void *arg2);-
8static int ssl_new(BIO *h);-
9static int ssl_free(BIO *data);-
10static long ssl_callback_ctrl(BIO *h, int cmd, bio_info_cb *fp);-
11typedef struct bio_ssl_st {-
12 SSL *ssl;-
13-
14 int num_renegotiates;-
15 unsigned long renegotiate_count;-
16 unsigned long byte_count;-
17 unsigned long renegotiate_timeout;-
18 time_t last_time;-
19} BIO_SSL;-
20-
21static const BIO_METHOD methods_sslp = {-
22 .type = (7|0x0200),-
23 .name = "ssl",-
24 .bwrite = ssl_write,-
25 .bread = ssl_read,-
26 .bputs = ssl_puts,-
27 .ctrl = ssl_ctrl,-
28 .create = ssl_new,-
29 .destroy = ssl_free,-
30 .callback_ctrl = ssl_callback_ctrl,-
31};-
32-
33const BIO_METHOD *-
34BIO_f_ssl(void)-
35{-
36 return
executed 118 times by 1 test: return (&methods_sslp);
Executed by:
  • ssltest
(&methods_sslp);
executed 118 times by 1 test: return (&methods_sslp);
Executed by:
  • ssltest
118
37}-
38-
39static int-
40ssl_new(BIO *bi)-
41{-
42 BIO_SSL *bs;-
43-
44 bs = calloc(1, sizeof(BIO_SSL));-
45 if (bs ==
bs == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
46 ((void *)0)
bs == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
47 ) {-
48 ERR_put_error(20,(0xfff),((1|64)),__FILE__,113);-
49 return
never executed: return (0);
(0);
never executed: return (0);
0
50 }-
51 bi->init = 0;-
52 bi->ptr = (char *)bs;-
53 bi->flags = 0;-
54 return
executed 118 times by 1 test: return (1);
Executed by:
  • ssltest
(1);
executed 118 times by 1 test: return (1);
Executed by:
  • ssltest
118
55}-
56-
57static int-
58ssl_free(BIO *a)-
59{-
60 BIO_SSL *bs;-
61-
62 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
63 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
64 )-
65 return
never executed: return (0);
(0);
never executed: return (0);
0
66 bs = (BIO_SSL *)a->ptr;-
67 if (bs->ssl !=
bs->ssl != ((void *)0)Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-118
68 ((void *)0)
bs->ssl != ((void *)0)Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-118
69 )-
70 SSL_shutdown(bs->ssl);
executed 118 times by 1 test: SSL_shutdown(bs->ssl);
Executed by:
  • ssltest
118
71 if (a->shutdown
a->shutdownDescription
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
) {
0-118
72 if (a->init
a->initDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(bs->ssl != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
bs->ssl !=
(bs->ssl != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
73 ((void *)0)
(bs->ssl != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
74 )
(bs->ssl != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
75 SSL_free(bs->ssl);
never executed: SSL_free(bs->ssl);
0
76 a->init = 0;-
77 a->flags = 0;-
78 }
never executed: end of block
0
79 free(a->ptr);-
80 return
executed 118 times by 1 test: return (1);
Executed by:
  • ssltest
(1);
executed 118 times by 1 test: return (1);
Executed by:
  • ssltest
118
81}-
82-
83static int-
84ssl_read(BIO *b, char *out, int outl)-
85{-
86 int ret = 1;-
87 BIO_SSL *sb;-
88 SSL *ssl;-
89 int retry_reason = 0;-
90 int r = 0;-
91-
92 if (out ==
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1598 times by 1 test
Evaluated by:
  • ssltest
0-1598
93 ((void *)0)
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1598 times by 1 test
Evaluated by:
  • ssltest
0-1598
94 )-
95 return
never executed: return (0);
(0);
never executed: return (0);
0
96 sb = (BIO_SSL *)b->ptr;-
97 ssl = sb->ssl;-
98-
99 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
100-
101 ret = SSL_read(ssl, out, outl);-
102-
103 switch (SSL_get_error(ssl, ret)) {-
104 case
executed 118 times by 1 test: case 0:
Executed by:
  • ssltest
0:
executed 118 times by 1 test: case 0:
Executed by:
  • ssltest
118
105 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
)
0-118
106 break;
never executed: break;
0
107 if (sb->renegotiate_count > 0
sb->renegotiate_count > 0Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
) {
0-118
108 sb->byte_count += ret;-
109 if (sb->byte_count > sb->renegotiate_count
sb->byte_count...egotiate_countDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
110 sb->byte_count = 0;-
111 sb->num_renegotiates++;-
112 SSL_renegotiate(ssl);-
113 r = 1;-
114 }
never executed: end of block
0
115 }
never executed: end of block
0
116 if ((
(sb->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
sb->renegotiate_timeout > 0)
(sb->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
&& (
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
!r)
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-118
117 time_t tm;-
118-
119 tm = time(-
120 ((void *)0)-
121 );-
122 if (tm > sb->last_time + sb->renegotiate_timeout
tm > sb->last_...otiate_timeoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
123 sb->last_time = tm;-
124 sb->num_renegotiates++;-
125 SSL_renegotiate(ssl);-
126 }
never executed: end of block
0
127 }
never executed: end of block
0
128-
129 break;
executed 118 times by 1 test: break;
Executed by:
  • ssltest
118
130 case
executed 1294 times by 1 test: case 2:
Executed by:
  • ssltest
2:
executed 1294 times by 1 test: case 2:
Executed by:
  • ssltest
1294
131 BIO_set_flags(b, (0x01|0x08));-
132 break;
executed 1294 times by 1 test: break;
Executed by:
  • ssltest
1294
133 case
executed 186 times by 1 test: case 3:
Executed by:
  • ssltest
3:
executed 186 times by 1 test: case 3:
Executed by:
  • ssltest
186
134 BIO_set_flags(b, (0x02|0x08));-
135 break;
executed 186 times by 1 test: break;
Executed by:
  • ssltest
186
136 case
never executed: case 4:
4:
never executed: case 4:
0
137 BIO_set_flags(b, (0x04|0x08));-
138 retry_reason = 0x01;-
139 break;
never executed: break;
0
140 case
never executed: case 8:
8:
never executed: case 8:
0
141 BIO_set_flags(b, (0x04|0x08));-
142 retry_reason = 0x03;-
143 break;
never executed: break;
0
144 case
never executed: case 7:
7:
never executed: case 7:
0
145 BIO_set_flags(b, (0x04|0x08));-
146 retry_reason = 0x02;-
147 break;
never executed: break;
0
148 case
never executed: case 5:
5:
never executed: case 5:
0
149 case
never executed: case 1:
1:
never executed: case 1:
0
150 case
never executed: case 6:
6:
never executed: case 6:
0
151 default
never executed: default:
:
never executed: default:
0
152 break;
never executed: break;
0
153 }-
154-
155 b->retry_reason = retry_reason;-
156 return
executed 1598 times by 1 test: return (ret);
Executed by:
  • ssltest
(ret);
executed 1598 times by 1 test: return (ret);
Executed by:
  • ssltest
1598
157}-
158-
159static int-
160ssl_write(BIO *b, const char *out, int outl)-
161{-
162 int ret, r = 0;-
163 int retry_reason = 0;-
164 SSL *ssl;-
165 BIO_SSL *bs;-
166-
167 if (out ==
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1526 times by 1 test
Evaluated by:
  • ssltest
0-1526
168 ((void *)0)
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1526 times by 1 test
Evaluated by:
  • ssltest
0-1526
169 )-
170 return
never executed: return (0);
(0);
never executed: return (0);
0
171 bs = (BIO_SSL *)b->ptr;-
172 ssl = bs->ssl;-
173-
174 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
175-
176-
177-
178 ret = SSL_write(ssl, out, outl);-
179-
180 switch (SSL_get_error(ssl, ret)) {-
181 case
executed 118 times by 1 test: case 0:
Executed by:
  • ssltest
0:
executed 118 times by 1 test: case 0:
Executed by:
  • ssltest
118
182 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
)
0-118
183 break;
never executed: break;
0
184 if (bs->renegotiate_count > 0
bs->renegotiate_count > 0Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
) {
0-118
185 bs->byte_count += ret;-
186 if (bs->byte_count > bs->renegotiate_count
bs->byte_count...egotiate_countDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
187 bs->byte_count = 0;-
188 bs->num_renegotiates++;-
189 SSL_renegotiate(ssl);-
190 r = 1;-
191 }
never executed: end of block
0
192 }
never executed: end of block
0
193 if ((
(bs->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
bs->renegotiate_timeout > 0)
(bs->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
&& (
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
!r)
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-118
194 time_t tm;-
195-
196 tm = time(-
197 ((void *)0)-
198 );-
199 if (tm > bs->last_time + bs->renegotiate_timeout
tm > bs->last_...otiate_timeoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
200 bs->last_time = tm;-
201 bs->num_renegotiates++;-
202 SSL_renegotiate(ssl);-
203 }
never executed: end of block
0
204 }
never executed: end of block
0
205 break;
executed 118 times by 1 test: break;
Executed by:
  • ssltest
118
206 case
executed 372 times by 1 test: case 3:
Executed by:
  • ssltest
3:
executed 372 times by 1 test: case 3:
Executed by:
  • ssltest
372
207 BIO_set_flags(b, (0x02|0x08));-
208 break;
executed 372 times by 1 test: break;
Executed by:
  • ssltest
372
209 case
executed 1036 times by 1 test: case 2:
Executed by:
  • ssltest
2:
executed 1036 times by 1 test: case 2:
Executed by:
  • ssltest
1036
210 BIO_set_flags(b, (0x01|0x08));-
211 break;
executed 1036 times by 1 test: break;
Executed by:
  • ssltest
1036
212 case
never executed: case 4:
4:
never executed: case 4:
0
213 BIO_set_flags(b, (0x04|0x08));-
214 retry_reason = 0x01;-
215 break;
never executed: break;
0
216 case
never executed: case 7:
7:
never executed: case 7:
0
217 BIO_set_flags(b, (0x04|0x08));-
218 retry_reason = 0x02;-
219 case
never executed: case 5:
5:
never executed: case 5:
code before this statement never executed: case 5:
0
220 case
never executed: case 1:
1:
never executed: case 1:
0
221 default
never executed: default:
:
never executed: default:
0
222 break;
never executed: break;
0
223 }-
224-
225 b->retry_reason = retry_reason;-
226 return
executed 1526 times by 1 test: return (ret);
Executed by:
  • ssltest
(ret);
executed 1526 times by 1 test: return (ret);
Executed by:
  • ssltest
1526
227}-
228-
229static long-
230ssl_ctrl(BIO *b, int cmd, long num, void *ptr)-
231{-
232 SSL **sslp, *ssl;-
233 BIO_SSL *bs;-
234 BIO *dbio, *bio;-
235 long ret = 1;-
236-
237 bs = (BIO_SSL *)b->ptr;-
238 ssl = bs->ssl;-
239 if ((
(ssl == ((void *)0) )Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 560 times by 1 test
Evaluated by:
  • ssltest
ssl ==
(ssl == ((void *)0) )Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 560 times by 1 test
Evaluated by:
  • ssltest
118-560
240 ((void *)0)
(ssl == ((void *)0) )Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 560 times by 1 test
Evaluated by:
  • ssltest
118-560
241 )
(ssl == ((void *)0) )Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 560 times by 1 test
Evaluated by:
  • ssltest
&& (
(cmd != 109)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
cmd != 109)
(cmd != 109)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
)
0-560
242 return
never executed: return (0);
(0);
never executed: return (0);
0
243 switch (cmd) {-
244 case
never executed: case 1:
1:
never executed: case 1:
0
245 SSL_shutdown(ssl);-
246-
247 if (ssl->internal->handshake_func ==
ssl->internal-...l->ssl_connectDescription
TRUEnever evaluated
FALSEnever evaluated
0
248 ssl->method->internal->ssl_connect
ssl->internal-...l->ssl_connectDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
249 SSL_set_connect_state(ssl);
never executed: SSL_set_connect_state(ssl);
0
250 else if (ssl->internal->handshake_func ==
ssl->internal-...al->ssl_acceptDescription
TRUEnever evaluated
FALSEnever evaluated
0
251 ssl->method->internal->ssl_accept
ssl->internal-...al->ssl_acceptDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
252 SSL_set_accept_state(ssl);
never executed: SSL_set_accept_state(ssl);
0
253-
254 SSL_clear(ssl);-
255-
256 if (b->next_bio !=
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
257 ((void *)0)
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
258 )-
259 ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
never executed: ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
0
260 else if (ssl->rbio !=
ssl->rbio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
261 ((void *)0)
ssl->rbio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
262 )-
263 ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);
never executed: ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);
0
264 else-
265 ret = 1;
never executed: ret = 1;
0
266 break;
never executed: break;
0
267 case
never executed: case 3:
3:
never executed: case 3:
0
268 ret = 0;-
269 break;
never executed: break;
0
270 case
never executed: case 119:
119:
never executed: case 119:
0
271 if (num
numDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
272 SSL_set_connect_state(ssl);
never executed: SSL_set_connect_state(ssl);
0
273 else-
274 SSL_set_accept_state(ssl);
never executed: SSL_set_accept_state(ssl);
0
275 break;
never executed: break;
0
276 case
never executed: case 127:
127:
never executed: case 127:
0
277 ret = bs->renegotiate_timeout;-
278 if (num < 60
num < 60Description
TRUEnever evaluated
FALSEnever evaluated
)
0
279 num = 5;
never executed: num = 5;
0
280 bs->renegotiate_timeout = (unsigned long)num;-
281 bs->last_time = time(-
282 ((void *)0)-
283 );-
284 break;
never executed: break;
0
285 case
never executed: case 125:
125:
never executed: case 125:
0
286 ret = bs->renegotiate_count;-
287 if ((
(long)num >=512Description
TRUEnever evaluated
FALSEnever evaluated
long)num >=512
(long)num >=512Description
TRUEnever evaluated
FALSEnever evaluated
)
0
288 bs->renegotiate_count = (unsigned long)num;
never executed: bs->renegotiate_count = (unsigned long)num;
0
289 break;
never executed: break;
0
290 case
never executed: case 126:
126:
never executed: case 126:
0
291 ret = bs->num_renegotiates;-
292 break;
never executed: break;
0
293 case
executed 118 times by 1 test: case 109:
Executed by:
  • ssltest
109:
executed 118 times by 1 test: case 109:
Executed by:
  • ssltest
118
294 if (ssl !=
ssl != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
295 ((void *)0)
ssl != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
296 ) {-
297 ssl_free(b);-
298 if (!ssl_new(b)
!ssl_new(b)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
299 return
never executed: return 0;
0;
never executed: return 0;
0
300 }
never executed: end of block
0
301 b->shutdown = (int)num;-
302 ssl = (SSL *)ptr;-
303 ((BIO_SSL *)b->ptr)->ssl = ssl;-
304 bio = SSL_get_rbio(ssl);-
305 if (bio !=
bio != ((void *)0)Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-118
306 ((void *)0)
bio != ((void *)0)Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
0-118
307 ) {-
308 if (b->next_bio !=
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
309 ((void *)0)
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • ssltest
0-118
310 )-
311 BIO_push(bio, b->next_bio);
never executed: BIO_push(bio, b->next_bio);
0
312 b->next_bio = bio;-
313 CRYPTO_add_lock(&bio->references,1,21,__FILE__,350);-
314 }
executed 118 times by 1 test: end of block
Executed by:
  • ssltest
118
315 b->init = 1;-
316 break;
executed 118 times by 1 test: break;
Executed by:
  • ssltest
118
317 case
never executed: case 110:
110:
never executed: case 110:
0
318 if (ptr !=
ptr != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
319 ((void *)0)
ptr != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
320 ) {-
321 sslp = (SSL **)ptr;-
322 *sslp = ssl;-
323 }
never executed: end of block
else
0
324 ret = 0;
never executed: ret = 0;
0
325 break;
never executed: break;
0
326 case
never executed: case 8:
8:
never executed: case 8:
0
327 ret = b->shutdown;-
328 break;
never executed: break;
0
329 case
never executed: case 9:
9:
never executed: case 9:
0
330 b->shutdown = (int)num;-
331 break;
never executed: break;
0
332 case
never executed: case 13:
13:
never executed: case 13:
0
333 ret = BIO_ctrl(ssl->wbio, cmd, num, ptr);-
334 break;
never executed: break;
0
335 case
executed 560 times by 1 test: case 10:
Executed by:
  • ssltest
10:
executed 560 times by 1 test: case 10:
Executed by:
  • ssltest
560
336 ret = SSL_pending(ssl);-
337 if (ret == 0
ret == 0Description
TRUEevaluated 560 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-560
338 ret = (int)BIO_ctrl(ssl->rbio,10,0,
executed 560 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • ssltest
560
339 ((void *)0)
executed 560 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • ssltest
560
340 );
executed 560 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • ssltest
560
341 break;
executed 560 times by 1 test: break;
Executed by:
  • ssltest
560
342 case
never executed: case 11:
11:
never executed: case 11:
0
343 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
344 ret = BIO_ctrl(ssl->wbio, cmd, num, ptr);-
345 BIO_copy_next_retry(b);-
346 break;
never executed: break;
0
347 case
never executed: case 6:
6:
never executed: case 6:
0
348 if ((
(b->next_bio != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
b->next_bio !=
(b->next_bio != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
349 ((void *)0)
(b->next_bio != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
350 )
(b->next_bio != ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(b->next_bio != ssl->rbio)Description
TRUEnever evaluated
FALSEnever evaluated
b->next_bio != ssl->rbio)
(b->next_bio != ssl->rbio)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
351 SSL_set_bio(ssl, b->next_bio, b->next_bio);-
352 CRYPTO_add_lock(&b->next_bio->references,1,21,-
353 __FILE__-
354 ,-
355 384-
356 )-
357 ;-
358 }
never executed: end of block
0
359 break;
never executed: break;
0
360 case
never executed: case 7:
7:
never executed: case 7:
0
361-
362 if (b == ptr
b == ptrDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
363-
364-
365-
366 if (ssl->rbio != ssl->wbio
ssl->rbio != ssl->wbioDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
367 BIO_free_all(ssl->wbio);
never executed: BIO_free_all(ssl->wbio);
0
368 if (b->next_bio !=
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
369 ((void *)0)
b->next_bio != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
370 )-
371 CRYPTO_add_lock(&b->next_bio->references,-1,21,__FILE__,396);
never executed: CRYPTO_add_lock(&b->next_bio->references,-1,21,__FILE__,396);
0
372 ssl->wbio = -
373 ((void *)0)-
374 ;-
375 ssl->rbio = -
376 ((void *)0)-
377 ;-
378 }
never executed: end of block
0
379 break;
never executed: break;
0
380 case
never executed: case 101:
101:
never executed: case 101:
0
381 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
382-
383 b->retry_reason = 0;-
384 ret = (int)SSL_do_handshake(ssl);-
385-
386 switch (SSL_get_error(ssl, (int)ret)) {-
387 case
never executed: case 2:
2:
never executed: case 2:
0
388 BIO_set_flags(b,-
389 0x01|0x08);-
390 break;
never executed: break;
0
391 case
never executed: case 3:
3:
never executed: case 3:
0
392 BIO_set_flags(b,-
393 0x02|0x08);-
394 break;
never executed: break;
0
395 case
never executed: case 7:
7:
never executed: case 7:
0
396 BIO_set_flags(b,-
397 0x04|0x08);-
398 b->retry_reason = b->next_bio->retry_reason;-
399 break;
never executed: break;
0
400 default
never executed: default:
:
never executed: default:
0
401 break;
never executed: break;
0
402 }-
403 break;
never executed: break;
0
404 case
never executed: case 12:
12:
never executed: case 12:
0
405 dbio = (BIO *)ptr;-
406 if (((
((BIO_SSL *)db...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
BIO_SSL *)dbio->ptr)->ssl !=
((BIO_SSL *)db...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
407 ((void *)0)
((BIO_SSL *)db...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
408 )-
409 SSL_free(((BIO_SSL *)dbio->ptr)->ssl);
never executed: SSL_free(((BIO_SSL *)dbio->ptr)->ssl);
0
410 ((BIO_SSL *)dbio->ptr)->ssl = SSL_dup(ssl);-
411 ((BIO_SSL *)dbio->ptr)->renegotiate_count =-
412 ((BIO_SSL *)b->ptr)->renegotiate_count;-
413 ((BIO_SSL *)dbio->ptr)->byte_count =-
414 ((BIO_SSL *)b->ptr)->byte_count;-
415 ((BIO_SSL *)dbio->ptr)->renegotiate_timeout =-
416 ((BIO_SSL *)b->ptr)->renegotiate_timeout;-
417 ((BIO_SSL *)dbio->ptr)->last_time =-
418 ((BIO_SSL *)b->ptr)->last_time;-
419 ret = (((BIO_SSL *)dbio->ptr)->ssl != -
420 ((void *)0)-
421 );-
422 break;
never executed: break;
0
423 case
never executed: case 105:
105:
never executed: case 105:
0
424 ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);-
425 break;
never executed: break;
0
426 case
never executed: case 14:
14:
never executed: case 14:
0
427 {-
428 ret = 0;-
429 }-
430 break;
never executed: break;
0
431 case
never executed: case 15:
15:
never executed: case 15:
0
432 {-
433 void (**fptr)(const SSL *xssl, int type, int val);-
434-
435 fptr = (void (**)(const SSL *xssl, int type, int val))-
436 ptr;-
437 *fptr = SSL_get_info_callback(ssl);-
438 }-
439 break;
never executed: break;
0
440 default
never executed: default:
:
never executed: default:
0
441 ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);-
442 break;
never executed: break;
0
443 }-
444 return
executed 678 times by 1 test: return (ret);
Executed by:
  • ssltest
(ret);
executed 678 times by 1 test: return (ret);
Executed by:
  • ssltest
678
445}-
446-
447static long-
448ssl_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)-
449{-
450 SSL *ssl;-
451 BIO_SSL *bs;-
452 long ret = 1;-
453-
454 bs = (BIO_SSL *)b->ptr;-
455 ssl = bs->ssl;-
456 switch (cmd) {-
457 case
never executed: case 14:
14:
never executed: case 14:
0
458 {-
459-
460-
461 SSL_set_info_callback(ssl,-
462 (void (*)(const SSL *, int, int))fp);-
463 }-
464 break;
never executed: break;
0
465 default
never executed: default:
:
never executed: default:
0
466 ret = BIO_callback_ctrl(ssl->rbio, cmd, fp);-
467 break;
never executed: break;
0
468 }-
469 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
470}-
471-
472static int-
473ssl_puts(BIO *bp, const char *str)-
474{-
475 int n, ret;-
476-
477 n = strlen(str);-
478 ret = BIO_write(bp, str, n);-
479 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
480}-
481-
482BIO *-
483BIO_new_buffer_ssl_connect(SSL_CTX *ctx)-
484{-
485 BIO *ret = -
486 ((void *)0)-
487 , *buf = -
488 ((void *)0)-
489 , *ssl = -
490 ((void *)0)-
491 ;-
492-
493 if ((
(buf = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
buf = BIO_new(BIO_f_buffer())) ==
(buf = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
494 ((void *)0)
(buf = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
495 )-
496 goto
never executed: goto err;
err;
never executed: goto err;
0
497 if ((
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ssl = BIO_new_ssl_connect(ctx)) ==
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
498 ((void *)0)
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
499 )-
500 goto
never executed: goto err;
err;
never executed: goto err;
0
501 if ((
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = BIO_push(buf, ssl)) ==
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
502 ((void *)0)
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
503 )-
504 goto
never executed: goto err;
err;
never executed: goto err;
0
505 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
506-
507err:-
508 BIO_free(buf);-
509 BIO_free(ssl);-
510 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
511 ((void *)0)
never executed: return ( ((void *)0) );
0
512 );
never executed: return ( ((void *)0) );
0
513}-
514-
515BIO *-
516BIO_new_ssl_connect(SSL_CTX *ctx)-
517{-
518 BIO *ret = -
519 ((void *)0)-
520 , *con = -
521 ((void *)0)-
522 , *ssl = -
523 ((void *)0)-
524 ;-
525-
526 if ((
(con = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
con = BIO_new(BIO_s_connect())) ==
(con = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
527 ((void *)0)
(con = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
528 )-
529 goto
never executed: goto err;
err;
never executed: goto err;
0
530 if ((
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ssl = BIO_new_ssl(ctx, 1)) ==
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
531 ((void *)0)
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
532 )-
533 goto
never executed: goto err;
err;
never executed: goto err;
0
534 if ((
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = BIO_push(ssl, con)) ==
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
535 ((void *)0)
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
536 )-
537 goto
never executed: goto err;
err;
never executed: goto err;
0
538 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
539-
540err:-
541 BIO_free(con);-
542 BIO_free(ssl);-
543 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
544 ((void *)0)
never executed: return ( ((void *)0) );
0
545 );
never executed: return ( ((void *)0) );
0
546}-
547-
548BIO *-
549BIO_new_ssl(SSL_CTX *ctx, int client)-
550{-
551 BIO *ret;-
552 SSL *ssl;-
553-
554 if ((
(ret = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = BIO_new(BIO_f_ssl())) ==
(ret = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
555 ((void *)0)
(ret = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
556 )-
557 goto
never executed: goto err;
err;
never executed: goto err;
0
558 if ((
(ssl = SSL_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ssl = SSL_new(ctx)) ==
(ssl = SSL_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
559 ((void *)0)
(ssl = SSL_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
560 )-
561 goto
never executed: goto err;
err;
never executed: goto err;
0
562-
563 if (client
clientDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
564 SSL_set_connect_state(ssl);
never executed: SSL_set_connect_state(ssl);
0
565 else-
566 SSL_set_accept_state(ssl);
never executed: SSL_set_accept_state(ssl);
0
567-
568 BIO_ctrl(ret,109,0x01,(char *)ssl);-
569 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
570-
571err:-
572 BIO_free(ret);-
573 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
574 ((void *)0)
never executed: return ( ((void *)0) );
0
575 );
never executed: return ( ((void *)0) );
0
576}-
577-
578int-
579BIO_ssl_copy_session_id(BIO *t, BIO *f)-
580{-
581 t = BIO_find_type(t, (7|0x0200));-
582 f = BIO_find_type(f, (7|0x0200));-
583 if ((
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
t ==
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
584 ((void *)0)
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
585 )
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
f ==
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
586 ((void *)0)
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
587 )
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
588 return
never executed: return (0);
(0);
never executed: return (0);
0
589 if ((((
(((BIO_SSL *)t... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
BIO_SSL *)t->ptr)->ssl ==
(((BIO_SSL *)t... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
590 ((void *)0)
(((BIO_SSL *)t... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
591 )
(((BIO_SSL *)t... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
||
0
592 (((
(((BIO_SSL *)f... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
BIO_SSL *)f->ptr)->ssl ==
(((BIO_SSL *)f... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
593 ((void *)0)
(((BIO_SSL *)f... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
594 )
(((BIO_SSL *)f... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
595 return
never executed: return (0);
(0);
never executed: return (0);
0
596 if (!SSL_copy_session_id(((BIO_SSL *)t->ptr)->ssl,
!SSL_copy_sess...)f->ptr)->ssl)Description
TRUEnever evaluated
FALSEnever evaluated
0
597 ((BIO_SSL *)f->ptr)->ssl)
!SSL_copy_sess...)f->ptr)->ssl)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
598 return
never executed: return (0);
(0);
never executed: return (0);
0
599 return
never executed: return (1);
(1);
never executed: return (1);
0
600}-
601-
602void-
603BIO_ssl_shutdown(BIO *b)-
604{-
605 SSL *s;-
606-
607 while (b !=
b != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
608 ((void *)0)
b != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
609 ) {-
610 if (b->method->type == (7|0x0200)
b->method->type == (7|0x0200)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
611 s = ((BIO_SSL *)b->ptr)->ssl;-
612 SSL_shutdown(s);-
613 break;
never executed: break;
0
614 }-
615 b = b->next_bio;-
616 }
never executed: end of block
0
617}
never executed: end of block
0
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2