OpenCoverage

bio_ssl.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/bio_ssl.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2static int ssl_write(BIO *h, const char *buf, size_t size, size_t *written);-
3static int ssl_read(BIO *b, char *buf, size_t size, size_t *readbytes);-
4static int ssl_puts(BIO *h, const char *str);-
5static long ssl_ctrl(BIO *h, int cmd, long arg1, void *arg2);-
6static int ssl_new(BIO *h);-
7static int ssl_free(BIO *data);-
8static long ssl_callback_ctrl(BIO *h, int cmd, BIO_info_cb *fp);-
9typedef struct bio_ssl_st {-
10 SSL *ssl;-
11-
12 int num_renegotiates;-
13 unsigned long renegotiate_count;-
14 size_t byte_count;-
15 unsigned long renegotiate_timeout;-
16 unsigned long last_time;-
17} BIO_SSL;-
18-
19static const BIO_METHOD methods_sslp = {-
20 ( 7|0x0200),-
21 "ssl",-
22 ssl_write,-
23 -
24 ((void *)0)-
25 ,-
26 ssl_read,-
27 -
28 ((void *)0)-
29 ,-
30 ssl_puts,-
31 -
32 ((void *)0)-
33 ,-
34 ssl_ctrl,-
35 ssl_new,-
36 ssl_free,-
37 ssl_callback_ctrl,-
38};-
39-
40const BIO_METHOD *BIO_f_ssl(void)-
41{-
42 return
executed 487 times by 1 test: return &methods_sslp;
Executed by:
  • libssl.so.1.1
&methods_sslp;
executed 487 times by 1 test: return &methods_sslp;
Executed by:
  • libssl.so.1.1
487
43}-
44-
45static int ssl_new(BIO *bi)-
46{-
47 BIO_SSL *bs = CRYPTO_zalloc(sizeof(*bs), __FILE__, 58);-
48-
49 if (bs ==
bs == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
50 ((void *)0)
bs == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
51 ) {-
52 ERR_put_error(32,(118),((1|64)),__FILE__,61);-
53 return
never executed: return 0;
0;
never executed: return 0;
0
54 }-
55 BIO_set_init(bi, 0);-
56 BIO_set_data(bi, bs);-
57-
58 BIO_clear_flags(bi, ~0);-
59-
60 return
executed 487 times by 1 test: return 1;
Executed by:
  • libssl.so.1.1
1;
executed 487 times by 1 test: return 1;
Executed by:
  • libssl.so.1.1
487
61}-
62-
63static int ssl_free(BIO *a)-
64{-
65 BIO_SSL *bs;-
66-
67 if (a ==
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
68 ((void *)0)
a == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
69 )-
70 return
never executed: return 0;
0;
never executed: return 0;
0
71 bs = BIO_get_data(a);-
72 if (bs->ssl !=
bs->ssl != ((void *)0)Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
0-487
73 ((void *)0)
bs->ssl != ((void *)0)Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
0-487
74 )-
75 SSL_shutdown(bs->ssl);
executed 487 times by 1 test: SSL_shutdown(bs->ssl);
Executed by:
  • libssl.so.1.1
487
76 if (BIO_get_shutdown(a)
BIO_get_shutdown(a)Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 292 times by 1 test
Evaluated by:
  • libssl.so.1.1
) {
195-292
77 if (BIO_get_init(a)
BIO_get_init(a)Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
)
0-195
78 SSL_free(bs->ssl);
executed 195 times by 1 test: SSL_free(bs->ssl);
Executed by:
  • libssl.so.1.1
195
79-
80 BIO_clear_flags(a, ~0);-
81 BIO_set_init(a, 0);-
82 }
executed 195 times by 1 test: end of block
Executed by:
  • libssl.so.1.1
195
83 CRYPTO_free(bs, __FILE__, 88);-
84 return
executed 487 times by 1 test: return 1;
Executed by:
  • libssl.so.1.1
1;
executed 487 times by 1 test: return 1;
Executed by:
  • libssl.so.1.1
487
85}-
86-
87static int ssl_read(BIO *b, char *buf, size_t size, size_t *readbytes)-
88{-
89 int ret = 1;-
90 BIO_SSL *sb;-
91 SSL *ssl;-
92 int retry_reason = 0;-
93 int r = 0;-
94-
95 if (buf ==
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 10191 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-10191
96 ((void *)0)
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 10191 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-10191
97 )-
98 return
never executed: return 0;
0;
never executed: return 0;
0
99 sb = BIO_get_data(b);-
100 ssl = sb->ssl;-
101-
102 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
103-
104 ret = ssl_read_internal(ssl, buf, size, readbytes);-
105-
106 switch (SSL_get_error(ssl, ret)) {-
107 case
executed 401 times by 1 test: case 0:
Executed by:
  • libssl.so.1.1
0:
executed 401 times by 1 test: case 0:
Executed by:
  • libssl.so.1.1
401
108 if (sb->renegotiate_count > 0
sb->renegotiate_count > 0Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
) {
0-401
109 sb->byte_count += *readbytes;-
110 if (sb->byte_count > sb->renegotiate_count
sb->byte_count...egotiate_countDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
111 sb->byte_count = 0;-
112 sb->num_renegotiates++;-
113 SSL_renegotiate(ssl);-
114 r = 1;-
115 }
never executed: end of block
0
116 }
never executed: end of block
0
117 if ((
(sb->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
sb->renegotiate_timeout > 0)
(sb->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
&& (
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
!r)
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-401
118 unsigned long tm;-
119-
120 tm = (unsigned long)time(-
121 ((void *)0)-
122 );-
123 if (tm > sb->last_time + sb->renegotiate_timeout
tm > sb->last_...otiate_timeoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
124 sb->last_time = tm;-
125 sb->num_renegotiates++;-
126 SSL_renegotiate(ssl);-
127 }
never executed: end of block
0
128 }
never executed: end of block
0
129-
130 break;
executed 401 times by 1 test: break;
Executed by:
  • libssl.so.1.1
401
131 case
executed 9252 times by 1 test: case 2:
Executed by:
  • libssl.so.1.1
2:
executed 9252 times by 1 test: case 2:
Executed by:
  • libssl.so.1.1
9252
132 BIO_set_flags(b, (0x01|0x08));-
133 break;
executed 9252 times by 1 test: break;
Executed by:
  • libssl.so.1.1
9252
134 case
executed 303 times by 1 test: case 3:
Executed by:
  • libssl.so.1.1
3:
executed 303 times by 1 test: case 3:
Executed by:
  • libssl.so.1.1
303
135 BIO_set_flags(b, (0x02|0x08));-
136 break;
executed 303 times by 1 test: break;
Executed by:
  • libssl.so.1.1
303
137 case
never executed: case 4:
4:
never executed: case 4:
0
138 BIO_set_flags(b, (0x04|0x08));-
139 retry_reason = 0x01;-
140 break;
never executed: break;
0
141 case
never executed: case 8:
8:
never executed: case 8:
0
142 BIO_set_flags(b, (0x04|0x08));-
143 retry_reason = 0x03;-
144 break;
never executed: break;
0
145 case
never executed: case 7:
7:
never executed: case 7:
0
146 BIO_set_flags(b, (0x04|0x08));-
147 retry_reason = 0x02;-
148 break;
never executed: break;
0
149 case
executed 6 times by 1 test: case 5:
Executed by:
  • libssl.so.1.1
5:
executed 6 times by 1 test: case 5:
Executed by:
  • libssl.so.1.1
6
150 case
executed 9 times by 1 test: case 1:
Executed by:
  • libssl.so.1.1
1:
executed 9 times by 1 test: case 1:
Executed by:
  • libssl.so.1.1
9
151 case
executed 220 times by 1 test: case 6:
Executed by:
  • libssl.so.1.1
6:
executed 220 times by 1 test: case 6:
Executed by:
  • libssl.so.1.1
220
152 default
never executed: default:
:
never executed: default:
0
153 break;
executed 235 times by 1 test: break;
Executed by:
  • libssl.so.1.1
235
154 }-
155-
156 BIO_set_retry_reason(b, retry_reason);-
157-
158 return
executed 10191 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
ret;
executed 10191 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
10191
159}-
160-
161static int ssl_write(BIO *b, const char *buf, size_t size, size_t *written)-
162{-
163 int ret, r = 0;-
164 int retry_reason = 0;-
165 SSL *ssl;-
166 BIO_SSL *bs;-
167-
168 if (buf ==
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2925 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-2925
169 ((void *)0)
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2925 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-2925
170 )-
171 return
never executed: return 0;
0;
never executed: return 0;
0
172 bs = BIO_get_data(b);-
173 ssl = bs->ssl;-
174-
175 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
176-
177 ret = ssl_write_internal(ssl, buf, size, written);-
178-
179 switch (SSL_get_error(ssl, ret)) {-
180 case
executed 401 times by 1 test: case 0:
Executed by:
  • libssl.so.1.1
0:
executed 401 times by 1 test: case 0:
Executed by:
  • libssl.so.1.1
401
181 if (bs->renegotiate_count > 0
bs->renegotiate_count > 0Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
) {
0-401
182 bs->byte_count += *written;-
183 if (bs->byte_count > bs->renegotiate_count
bs->byte_count...egotiate_countDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
184 bs->byte_count = 0;-
185 bs->num_renegotiates++;-
186 SSL_renegotiate(ssl);-
187 r = 1;-
188 }
never executed: end of block
0
189 }
never executed: end of block
0
190 if ((
(bs->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
bs->renegotiate_timeout > 0)
(bs->renegotiate_timeout > 0)Description
TRUEnever evaluated
FALSEevaluated 401 times by 1 test
Evaluated by:
  • libssl.so.1.1
&& (
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
!r)
(!r)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0-401
191 unsigned long tm;-
192-
193 tm = (unsigned long)time(-
194 ((void *)0)-
195 );-
196 if (tm > bs->last_time + bs->renegotiate_timeout
tm > bs->last_...otiate_timeoutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
197 bs->last_time = tm;-
198 bs->num_renegotiates++;-
199 SSL_renegotiate(ssl);-
200 }
never executed: end of block
0
201 }
never executed: end of block
0
202 break;
executed 401 times by 1 test: break;
Executed by:
  • libssl.so.1.1
401
203 case
executed 744 times by 1 test: case 3:
Executed by:
  • libssl.so.1.1
3:
executed 744 times by 1 test: case 3:
Executed by:
  • libssl.so.1.1
744
204 BIO_set_flags(b, (0x02|0x08));-
205 break;
executed 744 times by 1 test: break;
Executed by:
  • libssl.so.1.1
744
206 case
executed 1780 times by 1 test: case 2:
Executed by:
  • libssl.so.1.1
2:
executed 1780 times by 1 test: case 2:
Executed by:
  • libssl.so.1.1
1780
207 BIO_set_flags(b, (0x01|0x08));-
208 break;
executed 1780 times by 1 test: break;
Executed by:
  • libssl.so.1.1
1780
209 case
never executed: case 4:
4:
never executed: case 4:
0
210 BIO_set_flags(b, (0x04|0x08));-
211 retry_reason = 0x01;-
212 break;
never executed: break;
0
213 case
never executed: case 7:
7:
never executed: case 7:
0
214 BIO_set_flags(b, (0x04|0x08));-
215 retry_reason = 0x02;-
216 case
never executed: case 5:
5:
never executed: case 5:
code before this statement never executed: case 5:
0
217 case
never executed: case 1:
1:
never executed: case 1:
0
218 default
never executed: default:
:
never executed: default:
0
219 break;
never executed: break;
0
220 }-
221-
222 BIO_set_retry_reason(b, retry_reason);-
223-
224 return
executed 2925 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
ret;
executed 2925 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
2925
225}-
226-
227static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)-
228{-
229 SSL **sslp, *ssl;-
230 BIO_SSL *bs, *dbs;-
231 BIO *dbio, *bio;-
232 long ret = 1;-
233 BIO *next;-
234-
235 bs = BIO_get_data(b);-
236 next = BIO_next(b);-
237 ssl = bs->ssl;-
238 if ((
(ssl == ((void *)0) )Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 2064 times by 1 test
Evaluated by:
  • libssl.so.1.1
ssl ==
(ssl == ((void *)0) )Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 2064 times by 1 test
Evaluated by:
  • libssl.so.1.1
487-2064
239 ((void *)0)
(ssl == ((void *)0) )Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 2064 times by 1 test
Evaluated by:
  • libssl.so.1.1
487-2064
240 )
(ssl == ((void *)0) )Description
TRUEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 2064 times by 1 test
Evaluated by:
  • libssl.so.1.1
&& (
(cmd != 109)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
cmd != 109)
(cmd != 109)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
)
0-2064
241 return
never executed: return 0;
0;
never executed: return 0;
0
242 switch (cmd) {-
243 case
never executed: case 1:
1:
never executed: case 1:
0
244 SSL_shutdown(ssl);-
245-
246 if (ssl->handshake_func == ssl->method->ssl_connect
ssl->handshake...d->ssl_connectDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
247 SSL_set_connect_state(ssl);
never executed: SSL_set_connect_state(ssl);
0
248 else if (ssl->handshake_func == ssl->method->ssl_accept
ssl->handshake...od->ssl_acceptDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
249 SSL_set_accept_state(ssl);
never executed: SSL_set_accept_state(ssl);
0
250-
251 if (!SSL_clear(ssl)
!SSL_clear(ssl)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
252 ret = 0;-
253 break;
never executed: break;
0
254 }-
255-
256 if (next !=
next != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
257 ((void *)0)
next != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
258 )-
259 ret = BIO_ctrl(next, cmd, num, ptr);
never executed: ret = BIO_ctrl(next, 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 = (unsigned long)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 487 times by 1 test: case 109:
Executed by:
  • libssl.so.1.1
109:
executed 487 times by 1 test: case 109:
Executed by:
  • libssl.so.1.1
487
294 if (ssl !=
ssl != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
295 ((void *)0)
ssl != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 487 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-487
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 BIO_set_shutdown(b, num);-
302 ssl = (SSL *)ptr;-
303 bs->ssl = ssl;-
304 bio = SSL_get_rbio(ssl);-
305 if (bio !=
bio != ((void *)0)Description
TRUEevaluated 483 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libssl.so.1.1
4-483
306 ((void *)0)
bio != ((void *)0)Description
TRUEevaluated 483 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libssl.so.1.1
4-483
307 ) {-
308 if (next !=
next != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 483 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-483
309 ((void *)0)
next != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 483 times by 1 test
Evaluated by:
  • libssl.so.1.1
0-483
310 )-
311 BIO_push(bio, next);
never executed: BIO_push(bio, next);
0
312 BIO_set_next(b, bio);-
313 BIO_up_ref(bio);-
314 }
executed 483 times by 1 test: end of block
Executed by:
  • libssl.so.1.1
483
315 BIO_set_init(b, 1);-
316 break;
executed 487 times by 1 test: break;
Executed by:
  • libssl.so.1.1
487
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 = BIO_get_shutdown(b);-
328 break;
never executed: break;
0
329 case
never executed: case 9:
9:
never executed: case 9:
0
330 BIO_set_shutdown(b, (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 1564 times by 1 test: case 10:
Executed by:
  • libssl.so.1.1
10:
executed 1564 times by 1 test: case 10:
Executed by:
  • libssl.so.1.1
1564
336 ret = SSL_pending(ssl);-
337 if (ret == 0
ret == 0Description
TRUEevaluated 1564 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
)
0-1564
338 ret = (int)BIO_ctrl(ssl->rbio,10,0,
executed 1564 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • libssl.so.1.1
1564
339 ((void *)0)
executed 1564 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • libssl.so.1.1
1564
340 );
executed 1564 times by 1 test: ret = (int)BIO_ctrl(ssl->rbio,10,0, ((void *)0) );
Executed by:
  • libssl.so.1.1
1564
341 break;
executed 1564 times by 1 test: break;
Executed by:
  • libssl.so.1.1
1564
342 case
executed 113 times by 1 test: case 11:
Executed by:
  • libssl.so.1.1
11:
executed 113 times by 1 test: case 11:
Executed by:
  • libssl.so.1.1
113
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;
executed 113 times by 1 test: break;
Executed by:
  • libssl.so.1.1
113
347 case
executed 195 times by 1 test: case 6:
Executed by:
  • libssl.so.1.1
6:
executed 195 times by 1 test: case 6:
Executed by:
  • libssl.so.1.1
195
348 if ((
(next != ((void *)0) )Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
next !=
(next != ((void *)0) )Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
0-195
349 ((void *)0)
(next != ((void *)0) )Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
0-195
350 )
(next != ((void *)0) )Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
&& (
(next != ssl->rbio)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 191 times by 1 test
Evaluated by:
  • libssl.so.1.1
next != ssl->rbio)
(next != ssl->rbio)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEevaluated 191 times by 1 test
Evaluated by:
  • libssl.so.1.1
) {
0-195
351-
352-
353-
354-
355 BIO_up_ref(next);-
356 SSL_set_bio(ssl, next, next);-
357 }
executed 4 times by 1 test: end of block
Executed by:
  • libssl.so.1.1
4
358 break;
executed 195 times by 1 test: break;
Executed by:
  • libssl.so.1.1
195
359 case
executed 1 time by 1 test: case 7:
Executed by:
  • libssl.so.1.1
7:
executed 1 time by 1 test: case 7:
Executed by:
  • libssl.so.1.1
1
360-
361 if (b == ptr
b == ptrDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libssl.so.1.1
FALSEnever evaluated
) {
0-1
362-
363 SSL_set_bio(ssl, -
364 ((void *)0)-
365 , -
366 ((void *)0)-
367 );-
368 }
executed 1 time by 1 test: end of block
Executed by:
  • libssl.so.1.1
1
369 break;
executed 1 time by 1 test: break;
Executed by:
  • libssl.so.1.1
1
370 case
executed 191 times by 1 test: case 101:
Executed by:
  • libssl.so.1.1
101:
executed 191 times by 1 test: case 101:
Executed by:
  • libssl.so.1.1
191
371 BIO_clear_flags(b, ((0x01|0x02|0x04)|0x08));-
372-
373 BIO_set_retry_reason(b, 0);-
374 ret = (int)SSL_do_handshake(ssl);-
375-
376 switch (SSL_get_error(ssl, (int)ret)) {-
377 case
never executed: case 2:
2:
never executed: case 2:
0
378 BIO_set_flags(b, 0x01 | 0x08);-
379 break;
never executed: break;
0
380 case
never executed: case 3:
3:
never executed: case 3:
0
381 BIO_set_flags(b, 0x02 | 0x08);-
382 break;
never executed: break;
0
383 case
never executed: case 7:
7:
never executed: case 7:
0
384 BIO_set_flags(b, 0x04 | 0x08);-
385 BIO_set_retry_reason(b, BIO_get_retry_reason(next));-
386 break;
never executed: break;
0
387 case
never executed: case 4:
4:
never executed: case 4:
0
388 BIO_set_flags(b, (0x04|0x08));-
389 BIO_set_retry_reason(b, 0x01);-
390 break;
never executed: break;
0
391 default
executed 191 times by 1 test: default:
Executed by:
  • libssl.so.1.1
:
executed 191 times by 1 test: default:
Executed by:
  • libssl.so.1.1
191
392 break;
executed 191 times by 1 test: break;
Executed by:
  • libssl.so.1.1
191
393 }-
394 break;
executed 191 times by 1 test: break;
Executed by:
  • libssl.so.1.1
191
395 case
never executed: case 12:
12:
never executed: case 12:
0
396 dbio = (BIO *)ptr;-
397 dbs = BIO_get_data(dbio);-
398 SSL_free(dbs->ssl);-
399 dbs->ssl = SSL_dup(ssl);-
400 dbs->num_renegotiates = bs->num_renegotiates;-
401 dbs->renegotiate_count = bs->renegotiate_count;-
402 dbs->byte_count = bs->byte_count;-
403 dbs->renegotiate_timeout = bs->renegotiate_timeout;-
404 dbs->last_time = bs->last_time;-
405 ret = (dbs->ssl != -
406 ((void *)0)-
407 );-
408 break;
never executed: break;
0
409 case
never executed: case 105:
105:
never executed: case 105:
0
410 ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);-
411 break;
never executed: break;
0
412 case
never executed: case 14:
14:
never executed: case 14:
0
413 ret = 0;-
414 break;
never executed: break;
0
415 default
never executed: default:
:
never executed: default:
0
416 ret = BIO_ctrl(ssl->rbio, cmd, num, ptr);-
417 break;
never executed: break;
0
418 }-
419 return
executed 2551 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
ret;
executed 2551 times by 1 test: return ret;
Executed by:
  • libssl.so.1.1
2551
420}-
421-
422static long ssl_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)-
423{-
424 SSL *ssl;-
425 BIO_SSL *bs;-
426 long ret = 1;-
427-
428 bs = BIO_get_data(b);-
429 ssl = bs->ssl;-
430 switch (cmd) {-
431 case
never executed: case 14:
14:
never executed: case 14:
0
432 ret = BIO_callback_ctrl(ssl->rbio, cmd, fp);-
433 break;
never executed: break;
0
434 default
never executed: default:
:
never executed: default:
0
435 ret = 0;-
436 break;
never executed: break;
0
437 }-
438 return
never executed: return ret;
ret;
never executed: return ret;
0
439}-
440-
441static int ssl_puts(BIO *bp, const char *str)-
442{-
443 int n, ret;-
444-
445 n = strlen(str);-
446 ret = BIO_write(bp, str, n);-
447 return
never executed: return ret;
ret;
never executed: return ret;
0
448}-
449-
450BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx)-
451{-
452-
453 BIO *ret = -
454 ((void *)0)-
455 , *buf = -
456 ((void *)0)-
457 , *ssl = -
458 ((void *)0)-
459 ;-
460-
461 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
462 ((void *)0)
(buf = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
463 )-
464 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
465 ((void *)0)
never executed: return ((void *)0) ;
0
466 ;
never executed: return ((void *)0) ;
0
467 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
468 ((void *)0)
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
469 )-
470 goto
never executed: goto err;
err;
never executed: goto err;
0
471 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
472 ((void *)0)
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
473 )-
474 goto
never executed: goto err;
err;
never executed: goto err;
0
475 return
never executed: return ret;
ret;
never executed: return ret;
0
476 err:-
477 BIO_free(buf);-
478 BIO_free(ssl);-
479-
480 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
481 ((void *)0)
never executed: return ((void *)0) ;
0
482 ;
never executed: return ((void *)0) ;
0
483}-
484-
485BIO *BIO_new_ssl_connect(SSL_CTX *ctx)-
486{-
487-
488 BIO *ret = -
489 ((void *)0)-
490 , *con = -
491 ((void *)0)-
492 , *ssl = -
493 ((void *)0)-
494 ;-
495-
496 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
497 ((void *)0)
(con = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
498 )-
499 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
500 ((void *)0)
never executed: return ((void *)0) ;
0
501 ;
never executed: return ((void *)0) ;
0
502 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
503 ((void *)0)
(ssl = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
504 )-
505 goto
never executed: goto err;
err;
never executed: goto err;
0
506 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
507 ((void *)0)
(ret = BIO_pus...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
508 )-
509 goto
never executed: goto err;
err;
never executed: goto err;
0
510 return
never executed: return ret;
ret;
never executed: return ret;
0
511 err:-
512 BIO_free(con);-
513-
514 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
515 ((void *)0)
never executed: return ((void *)0) ;
0
516 ;
never executed: return ((void *)0) ;
0
517}-
518-
519BIO *BIO_new_ssl(SSL_CTX *ctx, int client)-
520{-
521 BIO *ret;-
522 SSL *ssl;-
523-
524 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
525 ((void *)0)
(ret = BIO_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
526 )-
527 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
528 ((void *)0)
never executed: return ((void *)0) ;
0
529 ;
never executed: return ((void *)0) ;
0
530 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
531 ((void *)0)
(ssl = SSL_new...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
532 ) {-
533 BIO_free(ret);-
534 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
535 ((void *)0)
never executed: return ((void *)0) ;
0
536 ;
never executed: return ((void *)0) ;
0
537 }-
538 if (client
clientDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
539 SSL_set_connect_state(ssl);
never executed: SSL_set_connect_state(ssl);
0
540 else-
541 SSL_set_accept_state(ssl);
never executed: SSL_set_accept_state(ssl);
0
542-
543 BIO_ctrl(ret,109,0x01,(char *)(ssl));-
544 return
never executed: return ret;
ret;
never executed: return ret;
0
545}-
546-
547int BIO_ssl_copy_session_id(BIO *t, BIO *f)-
548{-
549 BIO_SSL *tdata, *fdata;-
550 t = BIO_find_type(t, ( 7|0x0200));-
551 f = BIO_find_type(f, ( 7|0x0200));-
552 if ((
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
t ==
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
553 ((void *)0)
(t == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
554 )
(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
555 ((void *)0)
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
556 )
(f == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
557 return
never executed: return 0;
0;
never executed: return 0;
0
558 tdata = BIO_get_data(t);-
559 fdata = BIO_get_data(f);-
560 if ((
(tdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
tdata->ssl ==
(tdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
561 ((void *)0)
(tdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
562 )
(tdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(fdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
fdata->ssl ==
(fdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
563 ((void *)0)
(fdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
564 )
(fdata->ssl == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
565 return
never executed: return 0;
0;
never executed: return 0;
0
566 if (!SSL_copy_session_id(tdata->ssl, (fdata->ssl))
!SSL_copy_sess... (fdata->ssl))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
567 return
never executed: return 0;
0;
never executed: return 0;
0
568 return
never executed: return 1;
1;
never executed: return 1;
0
569}-
570-
571void BIO_ssl_shutdown(BIO *b)-
572{-
573 BIO_SSL *bdata;-
574-
575 for (; b !=
b != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
576 ((void *)0)
b != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
577 ; b = BIO_next(b)) {-
578 if (BIO_method_type(b) != ( 7|0x0200)
BIO_method_typ...!= ( 7|0x0200)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
579 continue;
never executed: continue;
0
580 bdata = BIO_get_data(b);-
581 if (bdata !=
bdata != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
582 ((void *)0)
bdata != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
583 && bdata->ssl !=
bdata->ssl != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
584 ((void *)0)
bdata->ssl != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
585 )-
586 SSL_shutdown(bdata->ssl);
never executed: SSL_shutdown(bdata->ssl);
0
587 }
never executed: end of block
0
588}
never executed: end of block
0
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2