Branch Coverage

src/ssl/ssl_engine.c
Criterion Covered Total %
branch 125 240 52.0


line true false branch
289 2 0 if (rc->iomode != BR_IO_FAILED) {
303 0 16 if (rc->iomode == BR_IO_IN) {
319 0 17 if ((b - a) > rc->max_frag_len) {
325 0 17 if (rc->iomode == BR_IO_OUT) {
338 0 0 if (rc->oxa < rc->oxb && rc->oxb > nxb && rc->oxa < nxb) {
0 0 if (rc->oxa < rc->oxb && rc->oxb > nxb && rc->oxa < nxb) {
0 0 if (rc->oxa < rc->oxb && rc->oxb > nxb && rc->oxa < nxb) {
348 2 2 if (buf == NULL) {
367 2 0 if (bidi) {
370 0 2 if (buf_len < (512 + MAX_IN_OVERHEAD
376 0 2 } else if (buf_len < (16384 + MAX_IN_OVERHEAD
405 2 2 if (ibuf == NULL) {
406 0 2 if (rc->ibuf == NULL) {
414 0 2 if (obuf == NULL) {
429 2 0 for (u = 14; u >= 9; u --) {
433 2 0 if (obuf_len >= flen + MAX_OUT_OVERHEAD
434 2 0 && ibuf_len >= flen + MAX_IN_OVERHEAD)
439 0 2 if (u == 8) {
442 0 2 } else if (u == 13) {
473 0 2 if (cc->rng_init_done != 0) {
490 0 2 if (!h) {
492 0 0 if (!h) {
495 0 0 if (!h) {
510 0 2 if (!rng_init(cc)) {
519 2 0 if (!cc->rng_os_rand_done) {
523 2 0 if (sd != 0 && sd(&cc->rng.vtable)) {
2 0 if (sd != 0 && sd(&cc->rng.vtable)) {
528 0 2 if (cc->rng_init_done < 2) {
546 0 0 if (!rng_init(cc)) {
568 2 102 if (rc->shutdown_recv) {
583 102 0 switch (rc->iomode) {
586 100 2 if (rc->ixa == rc->ixb) {
590 0 100 if (z > rc->ibuf_len - rc->ixa) {
613 22 0 if (rc->iomode == BR_IO_INOUT && rc->ibuf == rc->obuf) {
0 22 if (rc->iomode == BR_IO_INOUT && rc->ibuf == rc->obuf) {
627 0 22 if (rc->ixa < 5) {
634 11 11 if (rc->ixa == 5) {
652 0 11 if ((version >> 8) != 3) {
663 9 2 if (rc->version_in != 0 && rc->version_in != version) {
0 9 if (rc->version_in != 0 && rc->version_in != version) {
680 6 5 if (rc->incrypt) {
681 0 6 if (!rc->in.vtable->check_length(
687 0 6 if (rlen > (rc->ibuf_len - 5)) {
692 0 5 if (rlen > 16384) {
711 0 11 if (rlen == 0) {
726 5 6 if (!rc->incrypt) {
735 0 6 if (rc->ixc != 0) {
745 0 6 if (pbuf == 0) {
756 0 6 if (rc->ixa == rc->ixb) {
765 4 0 switch (rc->iomode) {
768 0 4 return rc->ixc == 0 || rc->ixa < 5;
0 0 return rc->ixc == 0 || rc->ixa < 5;
781 67 0 switch (rc->iomode) {
785 24 43 return (*len == 0) ? NULL : (rc->ibuf + rc->ixa);
803 10 0 if (rc->ixa == rc->ixb) {
804 10 0 if (rc->ixc == 0) {
819 72 0 switch (rc->iomode) {
823 54 18 return (*len == 0) ? NULL : (rc->obuf + rc->oxa);
844 0 11 if (rc->oxa == rc->oxb) {
848 0 11 if (xlen == 0 && !force) {
0 0 if (xlen == 0 && !force) {
865 11 0 if (rc->iomode == BR_IO_INOUT && rc->ibuf == rc->obuf) {
0 11 if (rc->iomode == BR_IO_INOUT && rc->ibuf == rc->obuf) {
869 0 11 if (rc->oxa >= rc->oxb) {
889 93 0 switch (rc->iomode) {
892 30 63 if (rc->oxc > rc->oxa) {
906 11 0 if (rc->oxa == rc->oxc) {
918 0 11 return rc->oxa == rc->oxb && rc->oxa != rc->oxc;
0 0 return rc->oxa == rc->oxb && rc->oxa != rc->oxc;
934 9 0 if (len > 16384) {
1023 0 2 if ((suites_num * sizeof *suites) > sizeof cc->suites_buf) {
1054 9 19 if (cc->hbuf_in != NULL
1055 0 9 && cc->record_type_in == BR_SSL_APPLICATION_DATA)
1067 24 4 if (cc->hbuf_out != NULL && br_ssl_engine_has_pld_to_send(cc)) {
0 24 if (cc->hbuf_out != NULL && br_ssl_engine_has_pld_to_send(cc)) {
1081 2 26 if (br_ssl_engine_closed(cc)) {
1084 0 26 if (cc->hbuf_out != cc->saved_hbuf_out) {
1087 8 18 if (hlen_in != cc->hlen_in) {
1089 8 0 if (cc->hlen_in == 0) {
1109 9 5 if (cc->hbuf_out != cc->saved_hbuf_out) {
1112 9 5 if (br_ssl_engine_has_pld_to_send(cc)) {
1122 54 30 if (!(cc->application_data & 1)) {
1140 31 54 if (!(cc->application_data & 1)
1141 14 17 || cc->record_type_in != BR_SSL_APPLICATION_DATA)
1168 11 0 if (len != 0 && !has_rec_tosend(cc)
11 0 if (len != 0 && !has_rec_tosend(cc)
1169 3 8 && (cc->record_type_out != BR_SSL_APPLICATION_DATA
1170 0 3 || (cc->application_data & 1) == 0))
1190 0 22 if (br_ssl_engine_closed(cc)) {
1200 11 11 if (buf != NULL) {
1208 2 0 if (cc->application_data == 1) {
1217 0 0 if (cc->application_data == 2) {
1234 1 0 if (!br_ssl_engine_closed(cc)) {
1247 0 1 if (br_ssl_engine_recvapp_buf(cc, &len) != NULL && len != 0) {
0 0 if (br_ssl_engine_recvapp_buf(cc, &len) != NULL && len != 0) {
1260 0 0 if (br_ssl_engine_closed(cc) || cc->reneg == 1
0 0 if (br_ssl_engine_closed(cc) || cc->reneg == 1
1261 0 0 || (cc->flags & BR_OPT_NO_RENEGOTIATION) != 0
1262 0 0 || br_ssl_engine_recvapp_buf(cc, &len) != NULL)
1277 4 82 if (br_ssl_engine_closed(cc)) {
1282 19 63 if (br_ssl_engine_sendrec_buf(cc, &len) != NULL) {
1285 78 4 if (br_ssl_engine_recvrec_buf(cc, &len) != NULL) {
1288 25 57 if (br_ssl_engine_sendapp_buf(cc, &len) != NULL) {
1291 2 80 if (br_ssl_engine_recvapp_buf(cc, &len) != NULL) {
1301 8 0 if (!br_ssl_engine_closed(cc) && (cc->application_data & 1) != 0) {
2 6 if (!br_ssl_engine_closed(cc) && (cc->application_data & 1) != 0) {
1326 10 0 if (cc->session.version >= BR_TLS12) {
1327 0 10 if (prf_id == br_sha384_ID) {
1390 0 0 if (cc->session.version >= BR_TLS11) {
1397 0 0 if (is_client) {
1406 0 0 if (iv_len == 0) {
1433 0 0 if (cc->session.version >= BR_TLS11) {
1440 0 0 if (is_client) {
1449 0 0 if (iv_len == 0) {
1467 0 0 if (is_client) {
1489 0 0 if (is_client) {
1509 1 1 if (is_client) {
1530 1 1 if (is_client) {
1552 0 0 if (is_client) {
1575 0 0 if (is_client) {