OpenCoverage

d1_both.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/d1_both.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8static unsigned char bitmask_start_values[] = {-
9 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80-
10};-
11static unsigned char bitmask_end_values[] = {-
12 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f-
13};-
14-
15-
16static unsigned int g_probable_mtu[] = {1500 - 28, 512 - 28, 256 - 28};-
17-
18static unsigned int dtls1_guess_mtu(unsigned int curr_mtu);-
19static void dtls1_fix_message_header(SSL *s, unsigned long frag_off,-
20 unsigned long frag_len);-
21static int dtls1_write_message_header(const struct hm_header_st *msg_hdr,-
22 unsigned long frag_off, unsigned long frag_len, unsigned char *p);-
23static long dtls1_get_message_fragment(SSL *s, int st1, int stn, long max,-
24 int *ok);-
25-
26static hm_fragment *-
27dtls1_hm_fragment_new(unsigned long frag_len, int reassembly)-
28{-
29 hm_fragment *frag = -
30 ((void *)0)-
31 ;-
32 unsigned char *buf = -
33 ((void *)0)-
34 ;-
35 unsigned char *bitmask = -
36 ((void *)0)-
37 ;-
38-
39 frag = malloc(sizeof(hm_fragment));-
40 if (frag ==
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 129 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-129
41 ((void *)0)
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 129 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-129
42 )-
43 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
44 ((void *)0)
never executed: return ((void *)0) ;
0
45 ;
never executed: return ((void *)0) ;
0
46-
47 if (frag_len
frag_lenDescription
TRUEevaluated 129 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-129
48 buf = malloc(frag_len);-
49 if (buf ==
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 129 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-129
50 ((void *)0)
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 129 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-129
51 ) {-
52 free(frag);-
53 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
54 ((void *)0)
never executed: return ((void *)0) ;
0
55 ;
never executed: return ((void *)0) ;
0
56 }-
57 }
executed 129 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
129
58-
59-
60 frag->fragment = buf;-
61-
62-
63 if (reassembly
reassemblyDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
8-121
64 bitmask = malloc((((frag_len) + 7) / 8));-
65 if (bitmask ==
bitmask == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
66 ((void *)0)
bitmask == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
67 ) {-
68 free(buf);-
69 free(frag);-
70 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
71 ((void *)0)
never executed: return ((void *)0) ;
0
72 ;
never executed: return ((void *)0) ;
0
73 }-
74 memset(bitmask, 0, (((frag_len) + 7) / 8));-
75 }
executed 8 times by 1 test: end of block
Executed by:
  • ssltest
8
76-
77 frag->reassembly = bitmask;-
78-
79 return
executed 129 times by 2 tests: return frag;
Executed by:
  • clienttest
  • ssltest
frag;
executed 129 times by 2 tests: return frag;
Executed by:
  • clienttest
  • ssltest
129
80}-
81-
82static void-
83dtls1_hm_fragment_free(hm_fragment *frag)-
84{-
85 if (frag ==
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 95 times by 1 test
Evaluated by:
  • ssltest
0-95
86 ((void *)0)
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 95 times by 1 test
Evaluated by:
  • ssltest
0-95
87 )-
88 return;
never executed: return;
0
89-
90 if (frag->msg_header.is_ccs
frag->msg_header.is_ccsDescription
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 84 times by 1 test
Evaluated by:
  • ssltest
) {
11-84
91 EVP_CIPHER_CTX_free(-
92 frag->msg_header.saved_retransmit_state.enc_write_ctx);-
93 EVP_MD_CTX_free(-
94 frag->msg_header.saved_retransmit_state.write_hash);-
95 }
executed 11 times by 1 test: end of block
Executed by:
  • ssltest
11
96 free(frag->fragment);-
97 free(frag->reassembly);-
98 free(frag);-
99}
executed 95 times by 1 test: end of block
Executed by:
  • ssltest
95
100-
101-
102int-
103dtls1_do_write(SSL *s, int type)-
104{-
105 int ret;-
106 int curr_mtu;-
107 unsigned int len, frag_off, mac_size, blocksize;-
108-
109-
110 if ((
(s->d1->intern...tls1_min_mtu()Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
s->d1->internal)->mtu < dtls1_min_mtu()
(s->d1->intern...tls1_min_mtu()Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
&&
23-98
111 !(SSL_ctrl((s),32,0,
!(SSL_ctrl((s)...& 0x00001000L)Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
0-23
112 ((void *)0)
!(SSL_ctrl((s)...& 0x00001000L)Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
0-23
113 ) & 0x00001000L)
!(SSL_ctrl((s)...& 0x00001000L)Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-23
114 (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s),-
115 40, 0, -
116 ((void *)0)-
117 );-
118-
119-
120-
121-
122-
123-
124 if ((
(s->d1->intern...tls1_min_mtu()Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
s->d1->internal)->mtu < dtls1_min_mtu()
(s->d1->intern...tls1_min_mtu()Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-23
125 (s->d1->internal)->mtu = 0;-
126 (s->d1->internal)->mtu = dtls1_guess_mtu((s->d1->internal)->mtu);-
127 BIO_ctrl(SSL_get_wbio(s), 42,-
128 (s->d1->internal)->mtu, -
129 ((void *)0)-
130 );-
131 }
executed 23 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
23
132 }
executed 23 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
23
133-
134 (void)(((s->d1->internal)->mtu >= dtls1_min_mtu()) ? 0 : (OpenSSLDie(__FILE__, 251, "D1I(s)->mtu >= dtls1_min_mtu()"),1));-
135-
136-
137 if (s->internal->init_off == 0
s->internal->init_off == 0Description
TRUEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
&& type == 22
type == 22Description
TRUEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
)
0-121
138 (
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie(
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
139 __FILE__
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
140 ,
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
141 256
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
142 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1))
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
143 ;
executed 99 times by 2 tests: (void)((s->internal->init_num == (int)(s->d1->internal)->w_msg_hdr.msg_len + 12) ? 0 : (OpenSSLDie( __FILE__ , 256 , "s->internal->init_num == (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH"),1)) ;
Executed by:
  • clienttest
  • ssltest
99
144-
145 if (s->internal->write_hash
s->internal->write_hashDescription
TRUEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
22-99
146 mac_size = EVP_MD_size(EVP_MD_CTX_md(s->internal->write_hash));
executed 22 times by 1 test: mac_size = EVP_MD_size(EVP_MD_CTX_md(s->internal->write_hash));
Executed by:
  • ssltest
22
147 else-
148 mac_size = 0;
executed 99 times by 2 tests: mac_size = 0;
Executed by:
  • clienttest
  • ssltest
99
149-
150 if (s->internal->enc_write_ctx
s->internal->enc_write_ctxDescription
TRUEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
&&
22-99
151 ((
((EVP_CIPHER_f...xF0007) & 0x2)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 4 times by 1 test
Evaluated by:
  • ssltest
EVP_CIPHER_flags(s->internal->enc_write_ctx->cipher) & 0xF0007) & 0x2)
((EVP_CIPHER_f...xF0007) & 0x2)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 4 times by 1 test
Evaluated by:
  • ssltest
)
4-18
152 blocksize = 2 * EVP_CIPHER_block_size(s->internal->enc_write_ctx->cipher);
executed 18 times by 1 test: blocksize = 2 * EVP_CIPHER_block_size(s->internal->enc_write_ctx->cipher);
Executed by:
  • ssltest
18
153 else-
154 blocksize = 0;
executed 103 times by 2 tests: blocksize = 0;
Executed by:
  • clienttest
  • ssltest
103
155-
156 frag_off = 0;-
157 while (s->internal->init_num
s->internal->init_numDescription
TRUEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-132
158 curr_mtu = (s->d1->internal)->mtu - (int)BIO_ctrl(SSL_get_wbio(s),13,0,-
159 ((void *)0)-
160 ) --
161 13 - mac_size - blocksize;-
162-
163 if (curr_mtu <= 12
curr_mtu <= 12Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
11-121
164-
165 ret = (int)BIO_ctrl(SSL_get_wbio(s),11,0,-
166 ((void *)0)-
167 );-
168 if (ret <= 0
ret <= 0Description
TRUEnever evaluated
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
)
0-11
169 return
never executed: return ret;
ret;
never executed: return ret;
0
170 curr_mtu = (s->d1->internal)->mtu - 13 --
171 mac_size - blocksize;-
172 }
executed 11 times by 1 test: end of block
Executed by:
  • ssltest
11
173-
174 if (s->internal->init_num > curr_mtu
s->internal->i...num > curr_mtuDescription
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
11-121
175 len = curr_mtu;
executed 11 times by 1 test: len = curr_mtu;
Executed by:
  • ssltest
11
176 else-
177 len = s->internal->init_num;
executed 121 times by 2 tests: len = s->internal->init_num;
Executed by:
  • clienttest
  • ssltest
121
178-
179-
180-
181 if (type == 22
type == 22Description
TRUEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
) {
22-110
182 if (s->internal->init_off != 0
s->internal->init_off != 0Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
11-99
183 (void)((s->internal->init_off > 12) ? 0 : (OpenSSLDie(__FILE__, 292, "s->internal->init_off > DTLS1_HM_HEADER_LENGTH"),1));-
184 s->internal->init_off -= 12;-
185 s->internal->init_num += 12;-
186-
187 if (s->internal->init_num > curr_mtu
s->internal->i...num > curr_mtuDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
)
3-8
188 len = curr_mtu;
executed 3 times by 1 test: len = curr_mtu;
Executed by:
  • ssltest
3
189 else-
190 len = s->internal->init_num;
executed 8 times by 1 test: len = s->internal->init_num;
Executed by:
  • ssltest
8
191 }-
192-
193 dtls1_fix_message_header(s, frag_off,-
194 len - 12);-
195-
196 if (!dtls1_write_message_header(&(s->d1->internal)->w_msg_hdr,
!dtls1_write_m...al->init_off])Description
TRUEnever evaluated
FALSEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-110
197 (s->d1->internal)->w_msg_hdr.frag_off, (s->d1->internal)->w_msg_hdr.frag_len,
!dtls1_write_m...al->init_off])Description
TRUEnever evaluated
FALSEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-110
198 (unsigned char *)&s->internal->init_buf->data[s->internal->init_off])
!dtls1_write_m...al->init_off])Description
TRUEnever evaluated
FALSEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-110
199 return
never executed: return -1;
-1;
never executed: return -1;
0
200-
201 (void)((len >= 12) ? 0 : (OpenSSLDie(__FILE__, 310, "len >= DTLS1_HM_HEADER_LENGTH"),1));-
202 }
executed 110 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
110
203-
204 ret = dtls1_write_bytes(s, type,-
205 &s->internal->init_buf->data[s->internal->init_off], len);-
206 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
0-132
207-
208-
209-
210-
211-
212-
213-
214 if (BIO_ctrl(SSL_get_wbio(s),
BIO_ctrl(SSL_g...oid *)0) ) > 0Description
TRUEnever evaluated
FALSEnever evaluated
0
215 43, 0,
BIO_ctrl(SSL_g...oid *)0) ) > 0Description
TRUEnever evaluated
FALSEnever evaluated
0
216 ((void *)0)
BIO_ctrl(SSL_g...oid *)0) ) > 0Description
TRUEnever evaluated
FALSEnever evaluated
0
217 ) > 0
BIO_ctrl(SSL_g...oid *)0) ) > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
218 (
never executed: (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s), 40, 0, ((void *)0) );
s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s),
never executed: (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s), 40, 0, ((void *)0) );
0
219 40, 0,
never executed: (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s), 40, 0, ((void *)0) );
0
220 ((void *)0)
never executed: (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s), 40, 0, ((void *)0) );
0
221 );
never executed: (s->d1->internal)->mtu = BIO_ctrl(SSL_get_wbio(s), 40, 0, ((void *)0) );
0
222 else-
223 return
never executed: return (-1);
(-1);
never executed: return (-1);
0
224 } else {-
225-
226-
227-
228-
229-
230-
231 (void)((len == (unsigned int)ret) ? 0 : (OpenSSLDie(__FILE__, 336, "len == (unsigned int)ret"),1));-
232-
233 if (type == 22
type == 22Description
TRUEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
&&
22-110
234 !(s->d1->internal)->retransmitting
!(s->d1->inter...retransmittingDescription
TRUEevaluated 110 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-110
235-
236-
237-
238-
239-
240 unsigned char *p = (unsigned char *)&s->internal->init_buf->data[s->internal->init_off];-
241 const struct hm_header_st *msg_hdr = &(s->d1->internal)->w_msg_hdr;-
242 int xlen;-
243-
244 if (frag_off == 0
frag_off == 0Description
TRUEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) {
11-99
245-
246-
247-
248-
249 if (!dtls1_write_message_header(msg_hdr,
!dtls1_write_m...r->msg_len, p)Description
TRUEnever evaluated
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-99
250 0, msg_hdr->msg_len, p)
!dtls1_write_m...r->msg_len, p)Description
TRUEnever evaluated
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-99
251 return
never executed: return (-1);
(-1);
never executed: return (-1);
0
252 xlen = ret;-
253 }
executed 99 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
else {
99
254 p += 12;-
255 xlen = ret - 12;-
256 }
executed 11 times by 1 test: end of block
Executed by:
  • ssltest
11
257-
258 tls1_finish_mac(s, p, xlen);-
259 }
executed 110 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
110
260-
261 if (ret == s->internal->init_num
ret == s->internal->init_numDescription
TRUEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) {
11-121
262 if (s->internal->msg_callback
s->internal->msg_callbackDescription
TRUEnever evaluated
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-121
263 s->internal->msg_callback(1, s->version, type,
never executed: s->internal->msg_callback(1, s->version, type, s->internal->init_buf->data, (size_t)(s->internal->init_off + s->internal->init_num), s, s->internal->msg_callback_arg);
0
264 s->internal->init_buf->data,
never executed: s->internal->msg_callback(1, s->version, type, s->internal->init_buf->data, (size_t)(s->internal->init_off + s->internal->init_num), s, s->internal->msg_callback_arg);
0
265 (size_t)(s->internal->init_off + s->internal->init_num),
never executed: s->internal->msg_callback(1, s->version, type, s->internal->init_buf->data, (size_t)(s->internal->init_off + s->internal->init_num), s, s->internal->msg_callback_arg);
0
266 s, s->internal->msg_callback_arg);
never executed: s->internal->msg_callback(1, s->version, type, s->internal->init_buf->data, (size_t)(s->internal->init_off + s->internal->init_num), s, s->internal->msg_callback_arg);
0
267-
268 s->internal->init_off = 0;-
269-
270 s->internal->init_num = 0;-
271-
272 return
executed 121 times by 2 tests: return (1);
Executed by:
  • clienttest
  • ssltest
(1);
executed 121 times by 2 tests: return (1);
Executed by:
  • clienttest
  • ssltest
121
273 }-
274 s->internal->init_off += ret;-
275 s->internal->init_num -= ret;-
276 frag_off += (ret -= 12);-
277 }
executed 11 times by 1 test: end of block
Executed by:
  • ssltest
11
278 }-
279 return
never executed: return (0);
(0);
never executed: return (0);
0
280}-
281long-
282dtls1_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok)-
283{-
284 int i, al;-
285 struct hm_header_st *msg_hdr;-
286 unsigned char *p;-
287 unsigned long msg_len;-
288-
289-
290-
291-
292-
293 if ((
(s->s3->intern....reuse_messageDescription
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
s->s3->internal)->tmp.reuse_message
(s->s3->intern....reuse_messageDescription
TRUEevaluated 36 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
36-132
294 (s->s3->internal)->tmp.reuse_message = 0;-
295 if ((
(mt >= 0)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
mt >= 0)
(mt >= 0)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
&& ((
((s->s3->inter...ge_type != mt)Description
TRUEnever evaluated
FALSEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
s->s3->internal)->tmp.message_type != mt)
((s->s3->inter...ge_type != mt)Description
TRUEnever evaluated
FALSEevaluated 18 times by 1 test
Evaluated by:
  • ssltest
) {
0-18
296 al = 10;-
297 SSL_error_internal(s, 244, __FILE__, 410);-
298 goto
never executed: goto f_err;
f_err;
never executed: goto f_err;
0
299 }-
300 *ok = 1;-
301 s->internal->init_msg = s->internal->init_buf->data + 12;-
302 s->internal->init_num = (int)(s->s3->internal)->tmp.message_size;-
303 return
executed 36 times by 1 test: return s->internal->init_num;
Executed by:
  • ssltest
s->internal->init_num;
executed 36 times by 1 test: return s->internal->init_num;
Executed by:
  • ssltest
36
304 }-
305-
306 msg_hdr = &(s->d1->internal)->r_msg_hdr;-
307 memset(msg_hdr, 0x00, sizeof(struct hm_header_st));-
308-
309again:
code before this statement executed 132 times by 2 tests: again:
Executed by:
  • clienttest
  • ssltest
132
310 i = dtls1_get_message_fragment(s, st1, stn, max, ok);-
311 if (i == -2
i == -2Description
TRUEnever evaluated
FALSEevaluated 151 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
||
0-151
312 i == -3
i == -3Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
19-132
313 goto
executed 19 times by 1 test: goto again;
Executed by:
  • ssltest
again;
executed 19 times by 1 test: goto again;
Executed by:
  • ssltest
19
314 else if (i <= 0
i <= 0Description
TRUEevaluated 45 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 87 times by 1 test
Evaluated by:
  • ssltest
&& !*ok
!*okDescription
TRUEevaluated 34 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
)
11-87
315 return
executed 34 times by 2 tests: return i;
Executed by:
  • clienttest
  • ssltest
i;
executed 34 times by 2 tests: return i;
Executed by:
  • clienttest
  • ssltest
34
316-
317 p = (unsigned char *)s->internal->init_buf->data;-
318 msg_len = msg_hdr->msg_len;-
319-
320-
321 if (!dtls1_write_message_header(msg_hdr, 0, msg_len, p)
!dtls1_write_m...0, msg_len, p)Description
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
)
0-98
322 return
never executed: return -1;
-1;
never executed: return -1;
0
323-
324 msg_len += 12;-
325-
326 tls1_finish_mac(s, p, msg_len);-
327 if (s->internal->msg_callback
s->internal->msg_callbackDescription
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
)
0-98
328 s->internal->msg_callback(0, s->version, 22, p, msg_len,
never executed: s->internal->msg_callback(0, s->version, 22, p, msg_len, s, s->internal->msg_callback_arg);
0
329 s, s->internal->msg_callback_arg);
never executed: s->internal->msg_callback(0, s->version, 22, p, msg_len, s, s->internal->msg_callback_arg);
0
330-
331 memset(msg_hdr, 0x00, sizeof(struct hm_header_st));-
332-
333-
334 if (!(s->d1->internal)->listen
!(s->d1->internal)->listenDescription
TRUEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-98
335 (
executed 98 times by 1 test: (s->d1->internal)->handshake_read_seq++;
Executed by:
  • ssltest
s->d1->internal)->handshake_read_seq++;
executed 98 times by 1 test: (s->d1->internal)->handshake_read_seq++;
Executed by:
  • ssltest
98
336-
337 s->internal->init_msg = s->internal->init_buf->data + 12;-
338 return
executed 98 times by 1 test: return s->internal->init_num;
Executed by:
  • ssltest
s->internal->init_num;
executed 98 times by 1 test: return s->internal->init_num;
Executed by:
  • ssltest
98
339-
340f_err:-
341 ssl3_send_alert(s, 2, al);-
342 *ok = 0;-
343 return
never executed: return -1;
-1;
never executed: return -1;
0
344}-
345-
346-
347static int-
348dtls1_preprocess_fragment(SSL *s, struct hm_header_st *msg_hdr, int max)-
349{-
350 size_t frag_off, frag_len, msg_len;-
351-
352 msg_len = msg_hdr->msg_len;-
353 frag_off = msg_hdr->frag_off;-
354 frag_len = msg_hdr->frag_len;-
355-
356-
357 if ((
(frag_off + fr...len) > msg_lenDescription
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
frag_off + frag_len) > msg_len
(frag_off + fr...len) > msg_lenDescription
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
) {
0-98
358 SSL_error_internal(s, 152, __FILE__, 471);-
359 return
never executed: return 47;
47;
never executed: return 47;
0
360 }-
361-
362 if ((
(frag_off + fr...igned long)maxDescription
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
frag_off + frag_len) > (unsigned long)max
(frag_off + fr...igned long)maxDescription
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
) {
0-98
363 SSL_error_internal(s, 152, __FILE__, 476);-
364 return
never executed: return 47;
47;
never executed: return 47;
0
365 }-
366-
367 if ( (
(s->d1->intern....frag_off == 0Description
TRUEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
s->d1->internal)->r_msg_hdr.frag_off == 0
(s->d1->intern....frag_off == 0Description
TRUEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-98
368 {-
369-
370-
371-
372-
373 if (!BUF_MEM_grow_clean(s->internal->init_buf,
!BUF_MEM_grow_... msg_len + 12)Description
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
0-98
374 msg_len + 12)
!BUF_MEM_grow_... msg_len + 12)Description
TRUEnever evaluated
FALSEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
) {
0-98
375 SSL_error_internal(s, 7, __FILE__, 488);-
376 return
never executed: return 80;
80;
never executed: return 80;
0
377 }-
378-
379 (s->s3->internal)->tmp.message_size = msg_len;-
380 (s->d1->internal)->r_msg_hdr.msg_len = msg_len;-
381 (s->s3->internal)->tmp.message_type = msg_hdr->type;-
382 (s->d1->internal)->r_msg_hdr.type = msg_hdr->type;-
383 (s->d1->internal)->r_msg_hdr.seq = msg_hdr->seq;-
384 }
executed 98 times by 1 test: end of block
Executed by:
  • ssltest
else if (msg_len != (s->d1->internal)->r_msg_hdr.msg_len
msg_len != (s-...sg_hdr.msg_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-98
385-
386-
387-
388-
389 SSL_error_internal(s, 152, __FILE__, 502);-
390 return
never executed: return 47;
47;
never executed: return 47;
0
391 }-
392-
393 return
executed 98 times by 1 test: return 0;
Executed by:
  • ssltest
0;
executed 98 times by 1 test: return 0;
Executed by:
  • ssltest
98
394}-
395-
396static int-
397dtls1_retrieve_buffered_fragment(SSL *s, long max, int *ok)-
398{-
399-
400-
401-
402-
403-
404-
405 pitem *item;-
406 hm_fragment *frag;-
407 int al;-
408-
409 *ok = 0;-
410 item = pqueue_peek((s->d1->internal)->buffered_messages);-
411 if (item ==
item == ((void *)0)Description
TRUEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
19-132
412 ((void *)0)
item == ((void *)0)Description
TRUEevaluated 132 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
19-132
413 )-
414 return
executed 132 times by 2 tests: return 0;
Executed by:
  • clienttest
  • ssltest
0;
executed 132 times by 2 tests: return 0;
Executed by:
  • clienttest
  • ssltest
132
415-
416 frag = (hm_fragment *)item->data;-
417-
418-
419 if (frag->reassembly !=
frag->reassemb...!= ((void *)0)Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
8-11
420 ((void *)0)
frag->reassemb...!= ((void *)0)Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
8-11
421 )-
422 return
executed 11 times by 1 test: return 0;
Executed by:
  • ssltest
0;
executed 11 times by 1 test: return 0;
Executed by:
  • ssltest
11
423-
424 if ((
(s->d1->intern...msg_header.seqDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
s->d1->internal)->handshake_read_seq == frag->msg_header.seq
(s->d1->intern...msg_header.seqDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
) {
0-8
425 unsigned long frag_len = frag->msg_header.frag_len;-
426 pqueue_pop((s->d1->internal)->buffered_messages);-
427-
428 al = dtls1_preprocess_fragment(s, &frag->msg_header, max);-
429-
430 if (al == 0
al == 0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-8
431 {-
432 unsigned char *p = (unsigned char *)s->internal->init_buf->data + 12;-
433 memcpy(&p[frag->msg_header.frag_off],-
434 frag->fragment, frag->msg_header.frag_len);-
435 }
executed 8 times by 1 test: end of block
Executed by:
  • ssltest
8
436-
437 dtls1_hm_fragment_free(frag);-
438 pitem_free(item);-
439-
440 if (al == 0
al == 0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
) {
0-8
441 *ok = 1;-
442 return
executed 8 times by 1 test: return frag_len;
Executed by:
  • ssltest
frag_len;
executed 8 times by 1 test: return frag_len;
Executed by:
  • ssltest
8
443 }-
444-
445 ssl3_send_alert(s, 2, al);-
446 s->internal->init_num = 0;-
447 *ok = 0;-
448 return
never executed: return -1;
-1;
never executed: return -1;
0
449 } else-
450 return
never executed: return 0;
0;
never executed: return 0;
0
451}-
452-
453-
454-
455-
456-
457-
458static unsigned long-
459dtls1_max_handshake_message_len(const SSL *s)-
460{-
461 unsigned long max_len;-
462-
463 max_len = 12 + ((256 + 64)+16384);-
464 if (max_len < (unsigned long)s->internal->max_cert_list
max_len < (uns...>max_cert_listDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-19
465 return
executed 19 times by 1 test: return s->internal->max_cert_list;
Executed by:
  • ssltest
s->internal->max_cert_list;
executed 19 times by 1 test: return s->internal->max_cert_list;
Executed by:
  • ssltest
19
466 return
never executed: return max_len;
max_len;
never executed: return max_len;
0
467}-
468-
469static int-
470dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok)-
471{-
472 hm_fragment *frag = -
473 ((void *)0)-
474 ;-
475 pitem *item = -
476 ((void *)0)-
477 ;-
478 int i = -1, is_complete;-
479 unsigned char seq64be[8];-
480 unsigned long frag_len = msg_hdr->frag_len;-
481-
482 if ((
(msg_hdr->frag...g_hdr->msg_lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
msg_hdr->frag_off + frag_len) > msg_hdr->msg_len
(msg_hdr->frag...g_hdr->msg_lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
||
0-19
483 msg_hdr->msg_len > dtls1_max_handshake_message_len(s)
msg_hdr->msg_l...message_len(s)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
)
0-19
484 goto
never executed: goto err;
err;
never executed: goto err;
0
485-
486 if (frag_len == 0
frag_len == 0Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
) {
0-19
487 i = -3;-
488 goto
never executed: goto err;
err;
never executed: goto err;
0
489 }-
490-
491-
492 memset(seq64be, 0, sizeof(seq64be));-
493 seq64be[6] = (unsigned char)(msg_hdr->seq >> 8);-
494 seq64be[7] = (unsigned char)msg_hdr->seq;-
495 item = pqueue_find((s->d1->internal)->buffered_messages, seq64be);-
496-
497 if (item ==
item == ((void *)0)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
8-11
498 ((void *)0)
item == ((void *)0)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
8-11
499 ) {-
500 frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1);-
501 if (frag ==
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
502 ((void *)0)
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
503 )-
504 goto
never executed: goto err;
err;
never executed: goto err;
0
505 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr));-
506 frag->msg_header.frag_len = frag->msg_header.msg_len;-
507 frag->msg_header.frag_off = 0;-
508 }
executed 8 times by 1 test: end of block
Executed by:
  • ssltest
else {
8
509 frag = (hm_fragment*)item->data;-
510 if (frag->msg_header.msg_len != msg_hdr->msg_len
frag->msg_head...g_hdr->msg_lenDescription
TRUEnever evaluated
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) {
0-11
511 item = -
512 ((void *)0)-
513 ;-
514 frag = -
515 ((void *)0)-
516 ;-
517 goto
never executed: goto err;
err;
never executed: goto err;
0
518 }-
519 }
executed 11 times by 1 test: end of block
Executed by:
  • ssltest
11
520-
521-
522-
523-
524-
525 if (frag->reassembly ==
frag->reassemb...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
0-19
526 ((void *)0)
frag->reassemb...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
0-19
527 ) {-
528 unsigned char devnull [256];-
529-
530 while (frag_len
frag_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
531 i = s->method->internal->ssl_read_bytes(s, 22,-
532 devnull, frag_len > sizeof(devnull) ?-
533 sizeof(devnull) : frag_len, 0);-
534 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
535 goto
never executed: goto err;
err;
never executed: goto err;
0
536 frag_len -= i;-
537 }
never executed: end of block
0
538 i = -3;-
539 goto
never executed: goto err;
err;
never executed: goto err;
0
540 }-
541-
542-
543 i = s->method->internal->ssl_read_bytes(s, 22,-
544 frag->fragment + msg_hdr->frag_off, frag_len, 0);-
545 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
|| (
(unsigned long)i != frag_lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
unsigned long)i != frag_len
(unsigned long)i != frag_lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
)
0-19
546 goto
never executed: goto err;
err;
never executed: goto err;
0
547-
548 { if (((
((long)(msg_hd...frag_off) <= 8Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 17 times by 1 test
Evaluated by:
  • ssltest
long)(msg_hdr->frag_off + frag_len)) - ((long)msg_hdr->frag_off) <= 8
((long)(msg_hd...frag_off) <= 8Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 17 times by 1 test
Evaluated by:
  • ssltest
) { long ii; for (ii = ((long)msg_hdr->frag_off); ii < ((long)(msg_hdr->frag_off + frag_len))
ii < ((long)(m...f + frag_len))Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 2 times by 1 test
Evaluated by:
  • ssltest
; ii++) frag->reassembly[((ii) >> 3)] |= (1 << ((ii) & 7));
executed 8 times by 1 test: frag->reassembly[((ii) >> 3)] |= (1 << ((ii) & 7));
Executed by:
  • ssltest
}
executed 2 times by 1 test: end of block
Executed by:
  • ssltest
else { long ii; frag->reassembly[(((long)msg_hdr->frag_off) >> 3)] |= bitmask_start_values[(((long)msg_hdr->frag_off) & 7)]; for (ii = ((((long)msg_hdr->frag_off) >> 3) + 1); ii < (((((long)(msg_hdr->frag_off + frag_len)) - 1)) >> 3)
ii < (((((long...)) - 1)) >> 3)Description
TRUEevaluated 1870 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 17 times by 1 test
Evaluated by:
  • ssltest
; ii++) frag->reassembly[ii] = 0xff;
executed 1870 times by 1 test: frag->reassembly[ii] = 0xff;
Executed by:
  • ssltest
frag->reassembly[((((long)(msg_hdr->frag_off + frag_len)) - 1) >> 3)] |= bitmask_end_values[(((long)(msg_hdr->frag_off + frag_len)) & 7)]; }
executed 17 times by 1 test: end of block
Executed by:
  • ssltest
}
2-1870
549 ;-
550-
551 { long ii; (void)((((long)msg_hdr->msg_len) > 0) ? 0 : (OpenSSLDie(-
552 __FILE__-
553 ,-
554 647-
555 , "((long)msg_hdr->msg_len) > 0"),1)); is_complete = 1; if (frag->reassembly[((((long)msg_hdr->msg_len) - 1) >> 3)] != bitmask_end_values[(((long)msg_hdr->msg_len) & 7)]
frag->reassemb...msg_len) & 7)]Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
) is_complete = 0;
executed 11 times by 1 test: is_complete = 0;
Executed by:
  • ssltest
if (is_complete
is_completeDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) for (ii = ((((long)msg_hdr->msg_len) - 1) >> 3) - 1; ii >= 0
ii >= 0Description
TRUEevaluated 1887 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
; ii--) if (frag->reassembly[ii] != 0xff
frag->reassembly[ii] != 0xffDescription
TRUEnever evaluated
FALSEevaluated 1887 times by 1 test
Evaluated by:
  • ssltest
) { is_complete = 0; break;
never executed: break;
} }
0-1887
556 ;-
557-
558 if (is_complete
is_completeDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) {
8-11
559 free(frag->reassembly);-
560 frag->reassembly = -
561 ((void *)0)-
562 ;-
563 }
executed 8 times by 1 test: end of block
Executed by:
  • ssltest
8
564-
565 if (item ==
item == ((void *)0)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
8-11
566 ((void *)0)
item == ((void *)0)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
8-11
567 ) {-
568 memset(seq64be, 0, sizeof(seq64be));-
569 seq64be[6] = (unsigned char)(msg_hdr->seq >> 8);-
570 seq64be[7] = (unsigned char)(msg_hdr->seq);-
571-
572 item = pitem_new(seq64be, frag);-
573 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
574 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
0-8
575 ) {-
576 i = -1;-
577 goto
never executed: goto err;
err;
never executed: goto err;
0
578 }-
579-
580 pqueue_insert((s->d1->internal)->buffered_messages, item);-
581 }
executed 8 times by 1 test: end of block
Executed by:
  • ssltest
8
582-
583 return
executed 19 times by 1 test: return -3;
Executed by:
  • ssltest
-3;
executed 19 times by 1 test: return -3;
Executed by:
  • ssltest
19
584-
585err:-
586 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
587 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
588 && frag !=
frag != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
589 ((void *)0)
frag != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
590 )-
591 dtls1_hm_fragment_free(frag);
never executed: dtls1_hm_fragment_free(frag);
0
592 *ok = 0;-
593 return
never executed: return i;
i;
never executed: return i;
0
594}-
595-
596-
597static int-
598dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok)-
599{-
600 int i = -1;-
601 hm_fragment *frag = -
602 ((void *)0)-
603 ;-
604 pitem *item = -
605 ((void *)0)-
606 ;-
607 unsigned char seq64be[8];-
608 unsigned long frag_len = msg_hdr->frag_len;-
609-
610 if ((
(msg_hdr->frag...g_hdr->msg_lenDescription
TRUEnever evaluated
FALSEnever evaluated
msg_hdr->frag_off + frag_len) > msg_hdr->msg_len
(msg_hdr->frag...g_hdr->msg_lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
611 goto
never executed: goto err;
err;
never executed: goto err;
0
612-
613-
614 memset(seq64be, 0, sizeof(seq64be));-
615 seq64be[6] = (unsigned char) (msg_hdr->seq >> 8);-
616 seq64be[7] = (unsigned char) msg_hdr->seq;-
617 item = pqueue_find((s->d1->internal)->buffered_messages, seq64be);-
618-
619-
620-
621-
622-
623 if (item !=
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
624 ((void *)0)
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
625 && frag_len < msg_hdr->msg_len
frag_len < msg_hdr->msg_lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
626 item =
never executed: item = ((void *)0) ;
0
627 ((void *)0)
never executed: item = ((void *)0) ;
0
628 ;
never executed: item = ((void *)0) ;
0
629-
630-
631-
632-
633-
634-
635-
636 if (msg_hdr->seq <= (s->d1->internal)->handshake_read_seq
msg_hdr->seq <...shake_read_seqDescription
TRUEnever evaluated
FALSEnever evaluated
||
0
637 msg_hdr->seq > (s->d1->internal)->handshake_read_seq + 10
msg_hdr->seq >..._read_seq + 10Description
TRUEnever evaluated
FALSEnever evaluated
|| item !=
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
638 ((void *)0)
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
639 ||-
640 ((
(s->d1->intern..._read_seq == 0Description
TRUEnever evaluated
FALSEnever evaluated
s->d1->internal)->handshake_read_seq == 0
(s->d1->intern..._read_seq == 0Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
641 msg_hdr->type == 20
msg_hdr->type == 20Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
642 unsigned char devnull [256];-
643-
644 while (frag_len
frag_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
645 i = s->method->internal->ssl_read_bytes(s, 22,-
646 devnull, frag_len > sizeof(devnull) ?-
647 sizeof(devnull) : frag_len, 0);-
648 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
649 goto
never executed: goto err;
err;
never executed: goto err;
0
650 frag_len -= i;-
651 }
never executed: end of block
0
652 }
never executed: end of block
else {
0
653 if (frag_len < msg_hdr->msg_len
frag_len < msg_hdr->msg_lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
654 return
never executed: return dtls1_reassemble_fragment(s, msg_hdr, ok);
dtls1_reassemble_fragment(s, msg_hdr, ok);
never executed: return dtls1_reassemble_fragment(s, msg_hdr, ok);
0
655-
656 if (frag_len > dtls1_max_handshake_message_len(s)
frag_len > dtl...message_len(s)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
657 goto
never executed: goto err;
err;
never executed: goto err;
0
658-
659 frag = dtls1_hm_fragment_new(frag_len, 0);-
660 if (frag ==
frag == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
661 ((void *)0)
frag == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
662 )-
663 goto
never executed: goto err;
err;
never executed: goto err;
0
664-
665 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr));-
666-
667 if (frag_len
frag_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
668-
669 i = s->method->internal->ssl_read_bytes(s, 22,-
670 frag->fragment, frag_len, 0);-
671 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(unsigned long)i != frag_lenDescription
TRUEnever evaluated
FALSEnever evaluated
unsigned long)i != frag_len
(unsigned long)i != frag_lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
672 goto
never executed: goto err;
err;
never executed: goto err;
0
673 }
never executed: end of block
0
674-
675 memset(seq64be, 0, sizeof(seq64be));-
676 seq64be[6] = (unsigned char)(msg_hdr->seq >> 8);-
677 seq64be[7] = (unsigned char)(msg_hdr->seq);-
678-
679 item = pitem_new(seq64be, frag);-
680 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
681 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
682 )-
683 goto
never executed: goto err;
err;
never executed: goto err;
0
684-
685 pqueue_insert((s->d1->internal)->buffered_messages, item);-
686 }
never executed: end of block
0
687-
688 return
never executed: return -3;
-3;
never executed: return -3;
0
689-
690err:-
691 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
692 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
693 && frag !=
frag != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
694 ((void *)0)
frag != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
695 )-
696 dtls1_hm_fragment_free(frag);
never executed: dtls1_hm_fragment_free(frag);
0
697 *ok = 0;-
698 return
never executed: return i;
i;
never executed: return i;
0
699}-
700-
701-
702static long-
703dtls1_get_message_fragment(SSL *s, int st1, int stn, long max, int *ok)-
704{-
705 unsigned char wire[12];-
706 unsigned long len, frag_off, frag_len;-
707 int i, al;-
708 struct hm_header_st msg_hdr;-
709-
710again:
code before this statement executed 151 times by 2 tests: again:
Executed by:
  • clienttest
  • ssltest
151
711-
712 if ((
(frag_len = dt...t(s, max, ok))Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 143 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
frag_len = dtls1_retrieve_buffered_fragment(s, max, ok))
(frag_len = dt...t(s, max, ok))Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 143 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
|| *
*okDescription
TRUEnever evaluated
FALSEevaluated 143 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
ok
*okDescription
TRUEnever evaluated
FALSEevaluated 143 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
0-143
713 if (*
*okDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
ok
*okDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
)
0-8
714 s->internal->init_num = frag_len;
executed 8 times by 1 test: s->internal->init_num = frag_len;
Executed by:
  • ssltest
8
715 return
executed 8 times by 1 test: return frag_len;
Executed by:
  • ssltest
frag_len;
executed 8 times by 1 test: return frag_len;
Executed by:
  • ssltest
8
716 }-
717-
718-
719 i = s->method->internal->ssl_read_bytes(s, 22, wire,-
720 12, 0);-
721 if (i <= 0
i <= 0Description
TRUEevaluated 34 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
34-109
722 {-
723 s->internal->rwstate = 3;-
724 *ok = 0;-
725 return
executed 34 times by 2 tests: return i;
Executed by:
  • clienttest
  • ssltest
i;
executed 34 times by 2 tests: return i;
Executed by:
  • clienttest
  • ssltest
34
726 }-
727-
728 if (i != 12
i != 12Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
||
0-109
729-
730 dtls1_get_message_header(wire, &msg_hdr) == 0
dtls1_get_mess...&msg_hdr) == 0Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
) {
0-109
731 al = 10;-
732 SSL_error_internal(s, 244, __FILE__, 795);-
733 goto
never executed: goto f_err;
f_err;
never executed: goto f_err;
0
734 }-
735-
736-
737-
738-
739-
740-
741-
742 if (msg_hdr.seq != (s->d1->internal)->handshake_read_seq
msg_hdr.seq !=...shake_read_seqDescription
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
&&
0-109
743 !((
(s->d1->internal)->listenDescription
TRUEnever evaluated
FALSEnever evaluated
s->d1->internal)->listen
(s->d1->internal)->listenDescription
TRUEnever evaluated
FALSEnever evaluated
&& msg_hdr.seq == 1
msg_hdr.seq == 1Description
TRUEnever evaluated
FALSEnever evaluated
))
0
744 return
never executed: return dtls1_process_out_of_seq_message(s, &msg_hdr, ok);
dtls1_process_out_of_seq_message(s, &msg_hdr, ok);
never executed: return dtls1_process_out_of_seq_message(s, &msg_hdr, ok);
0
745-
746 len = msg_hdr.msg_len;-
747 frag_off = msg_hdr.frag_off;-
748 frag_len = msg_hdr.frag_len;-
749-
750 if (frag_len
frag_lenDescription
TRUEevaluated 98 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
&& frag_len < len
frag_len < lenDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 79 times by 1 test
Evaluated by:
  • ssltest
)
11-98
751 return
executed 19 times by 1 test: return dtls1_reassemble_fragment(s, &msg_hdr, ok);
Executed by:
  • ssltest
dtls1_reassemble_fragment(s, &msg_hdr, ok);
executed 19 times by 1 test: return dtls1_reassemble_fragment(s, &msg_hdr, ok);
Executed by:
  • ssltest
19
752-
753 if (!s->server
!s->serverDescription
TRUEevaluated 57 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 33 times by 1 test
Evaluated by:
  • ssltest
&& (
(s->d1->intern....frag_off == 0Description
TRUEevaluated 57 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
s->d1->internal)->r_msg_hdr.frag_off == 0
(s->d1->intern....frag_off == 0Description
TRUEevaluated 57 times by 1 test
Evaluated by:
  • ssltest
FALSEnever evaluated
&&
0-57
754 wire[0] == 0
wire[0] == 0Description
TRUEnever evaluated
FALSEevaluated 57 times by 1 test
Evaluated by:
  • ssltest
) {
0-57
755-
756-
757-
758-
759-
760-
761 if (wire[1] == 0
wire[1] == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& wire[2] == 0
wire[2] == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& wire[3] == 0
wire[3] == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
762 if (s->internal->msg_callback
s->internal->msg_callbackDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
763 s->internal->msg_callback(0, s->version,
never executed: s->internal->msg_callback(0, s->version, 22, wire, 12, s, s->internal->msg_callback_arg);
0
764 22, wire,
never executed: s->internal->msg_callback(0, s->version, 22, wire, 12, s, s->internal->msg_callback_arg);
0
765 12, s,
never executed: s->internal->msg_callback(0, s->version, 22, wire, 12, s, s->internal->msg_callback_arg);
0
766 s->internal->msg_callback_arg);
never executed: s->internal->msg_callback(0, s->version, 22, wire, 12, s, s->internal->msg_callback_arg);
0
767-
768 s->internal->init_num = 0;-
769 goto
never executed: goto again;
again;
never executed: goto again;
0
770 }-
771 else-
772 {-
773 al = 10;-
774 SSL_error_internal(s, 244, __FILE__, 837);-
775 goto
never executed: goto f_err;
f_err;
never executed: goto f_err;
0
776 }-
777 }-
778-
779 if ((
(al = dtls1_pr...msg_hdr, max))Description
TRUEnever evaluated
FALSEevaluated 90 times by 1 test
Evaluated by:
  • ssltest
al = dtls1_preprocess_fragment(s, &msg_hdr, max))
(al = dtls1_pr...msg_hdr, max))Description
TRUEnever evaluated
FALSEevaluated 90 times by 1 test
Evaluated by:
  • ssltest
)
0-90
780 goto
never executed: goto f_err;
f_err;
never executed: goto f_err;
0
781-
782-
783 (s->s3->internal)->hs.state = stn;-
784-
785 if (frag_len > 0
frag_len > 0Description
TRUEevaluated 79 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 11 times by 1 test
Evaluated by:
  • ssltest
) {
11-79
786 unsigned char *p = (unsigned char *)s->internal->init_buf->data + 12;-
787-
788 i = s->method->internal->ssl_read_bytes(s, 22,-
789 &p[frag_off], frag_len, 0);-
790-
791 if (i <= 0
i <= 0Description
TRUEnever evaluated
FALSEevaluated 79 times by 1 test
Evaluated by:
  • ssltest
) {
0-79
792 s->internal->rwstate = 3;-
793 *ok = 0;-
794 return
never executed: return i;
i;
never executed: return i;
0
795 }-
796 }
executed 79 times by 1 test: end of block
Executed by:
  • ssltest
else
79
797 i = 0;
executed 11 times by 1 test: i = 0;
Executed by:
  • ssltest
11
798-
799-
800-
801-
802-
803 if (i != (int)frag_len
i != (int)frag_lenDescription
TRUEnever evaluated
FALSEevaluated 90 times by 1 test
Evaluated by:
  • ssltest
) {
0-90
804 al = 47;-
805 SSL_error_internal(s, 47, __FILE__, 868);-
806 goto
never executed: goto f_err;
f_err;
never executed: goto f_err;
0
807 }-
808-
809 *ok = 1;-
810-
811-
812-
813-
814-
815-
816-
817 s->internal->init_num = frag_len;-
818 return
executed 90 times by 1 test: return frag_len;
Executed by:
  • ssltest
frag_len;
executed 90 times by 1 test: return frag_len;
Executed by:
  • ssltest
90
819-
820f_err:-
821 ssl3_send_alert(s, 2, al);-
822 s->internal->init_num = 0;-
823-
824 *ok = 0;-
825 return
never executed: return (-1);
(-1);
never executed: return (-1);
0
826}-
827-
828int-
829dtls1_read_failed(SSL *s, int code)-
830{-
831 if (code > 0
code > 0Description
TRUEnever evaluated
FALSEevaluated 45 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
0-45
832-
833-
834-
835-
836 return
never executed: return 1;
1;
never executed: return 1;
0
837 }-
838-
839 if (!dtls1_is_timer_expired(s)
!dtls1_is_timer_expired(s)Description
TRUEevaluated 45 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-45
840-
841-
842-
843-
844 return
executed 45 times by 2 tests: return code;
Executed by:
  • clienttest
  • ssltest
code;
executed 45 times by 2 tests: return code;
Executed by:
  • clienttest
  • ssltest
45
845 }-
846-
847 if (!(SSL_state((s))&(0x1000|0x2000))
!(SSL_state((s...x1000|0x2000))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
848 {-
849 BIO_set_flags(SSL_get_rbio(s), 0x01);-
850 return
never executed: return code;
code;
never executed: return code;
0
851 }-
852-
853 return
never executed: return dtls1_handle_timeout(s);
dtls1_handle_timeout(s);
never executed: return dtls1_handle_timeout(s);
0
854}-
855-
856int-
857dtls1_get_queue_priority(unsigned short seq, int is_ccs)-
858{-
859 return
executed 242 times by 2 tests: return seq * 2 - is_ccs;
Executed by:
  • clienttest
  • ssltest
seq * 2 - is_ccs;
executed 242 times by 2 tests: return seq * 2 - is_ccs;
Executed by:
  • clienttest
  • ssltest
242
860}-
861-
862int-
863dtls1_retransmit_buffered_messages(SSL *s)-
864{-
865 pqueue sent = s->d1->sent_messages;-
866 piterator iter;-
867 pitem *item;-
868 hm_fragment *frag;-
869 int found = 0;-
870-
871 iter = pqueue_iterator(sent);-
872-
873 for (item = pqueue_next(&iter); item !=
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
874 ((void *)0)
item != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
875 ;-
876 item = pqueue_next(&iter)) {-
877 frag = (hm_fragment *)item->data;-
878 if (dtls1_retransmit_message(s,
dtls1_retransm..., &found) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
879 (unsigned short)dtls1_get_queue_priority(
dtls1_retransm..., &found) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
880 frag->msg_header.seq, frag->msg_header.is_ccs), 0,
dtls1_retransm..., &found) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
881 &found) <= 0
dtls1_retransm..., &found) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& found
foundDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
882-
883-
884-
885 return
never executed: return -1;
-1;
never executed: return -1;
0
886 }-
887 }
never executed: end of block
0
888-
889 return
never executed: return 1;
1;
never executed: return 1;
0
890}-
891-
892int-
893dtls1_buffer_message(SSL *s, int is_ccs)-
894{-
895 pitem *item;-
896 hm_fragment *frag;-
897 unsigned char seq64be[8];-
898-
899-
900-
901-
902-
903-
904-
905 (void)((s->internal->init_off == 0) ? 0 : (OpenSSLDie(__FILE__, 977, "s->internal->init_off == 0"),1));-
906-
907 frag = dtls1_hm_fragment_new(s->internal->init_num, 0);-
908 if (frag ==
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-121
909 ((void *)0)
frag == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-121
910 )-
911 return
never executed: return 0;
0;
never executed: return 0;
0
912-
913 memcpy(frag->fragment, s->internal->init_buf->data, s->internal->init_num);-
914-
915 if (is_ccs
is_ccsDescription
TRUEevaluated 22 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
) {
22-99
916 (void)(((s->d1->internal)->w_msg_hdr.msg_len + ((s->version == 0xFEFF) ? 1 : 3) == (unsigned int)s->internal->init_num) ? 0 : (OpenSSLDie(-
917-
918 __FILE__-
919 ,-
920-
921 988-
922 , "D1I(s)->w_msg_hdr.msg_len + ((s->version == DTLS1_VERSION) ? DTLS1_CCS_HEADER_LENGTH : 3) == (unsigned int)s->internal->init_num"),1))-
923-
924 ;-
925 }
executed 22 times by 1 test: end of block
Executed by:
  • ssltest
else {
22
926 (void)(((s->d1->internal)->w_msg_hdr.msg_len + 12 == (unsigned int)s->internal->init_num) ? 0 : (OpenSSLDie(-
927 __FILE__-
928 ,-
929 991-
930 , "D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH == (unsigned int)s->internal->init_num"),1))-
931 ;-
932 }
executed 99 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
99
933-
934 frag->msg_header.msg_len = (s->d1->internal)->w_msg_hdr.msg_len;-
935 frag->msg_header.seq = (s->d1->internal)->w_msg_hdr.seq;-
936 frag->msg_header.type = (s->d1->internal)->w_msg_hdr.type;-
937 frag->msg_header.frag_off = 0;-
938 frag->msg_header.frag_len = (s->d1->internal)->w_msg_hdr.msg_len;-
939 frag->msg_header.is_ccs = is_ccs;-
940-
941-
942 frag->msg_header.saved_retransmit_state.enc_write_ctx = s->internal->enc_write_ctx;-
943 frag->msg_header.saved_retransmit_state.write_hash = s->internal->write_hash;-
944 frag->msg_header.saved_retransmit_state.session = s->session;-
945 frag->msg_header.saved_retransmit_state.epoch = (s->d1->internal)->w_epoch;-
946-
947 memset(seq64be, 0, sizeof(seq64be));-
948 seq64be[6] = (unsigned char)(dtls1_get_queue_priority(-
949 frag->msg_header.seq, frag->msg_header.is_ccs) >> 8);-
950 seq64be[7] = (unsigned char)(dtls1_get_queue_priority(-
951 frag->msg_header.seq, frag->msg_header.is_ccs));-
952-
953 item = pitem_new(seq64be, frag);-
954 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-121
955 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-121
956 ) {-
957 dtls1_hm_fragment_free(frag);-
958 return
never executed: return 0;
0;
never executed: return 0;
0
959 }-
960-
961 pqueue_insert(s->d1->sent_messages, item);-
962 return
executed 121 times by 2 tests: return 1;
Executed by:
  • clienttest
  • ssltest
1;
executed 121 times by 2 tests: return 1;
Executed by:
  • clienttest
  • ssltest
121
963}-
964-
965int-
966dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off,-
967 int *found)-
968{-
969 int ret;-
970-
971 pitem *item;-
972 hm_fragment *frag;-
973 unsigned long header_length;-
974 unsigned char seq64be[8];-
975 struct dtls1_retransmit_state saved_state;-
976 unsigned char save_write_sequence[8];-
977-
978-
979-
980-
981-
982-
983-
984 memset(seq64be, 0, sizeof(seq64be));-
985 seq64be[6] = (unsigned char)(seq >> 8);-
986 seq64be[7] = (unsigned char)seq;-
987-
988 item = pqueue_find(s->d1->sent_messages, seq64be);-
989 if (item ==
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
990 ((void *)0)
item == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
991 ) {-
992-
993-
994-
995 *found = 0;-
996 return
never executed: return 0;
0;
never executed: return 0;
0
997 }-
998-
999 *found = 1;-
1000 frag = (hm_fragment *)item->data;-
1001-
1002 if (frag->msg_header.is_ccs
frag->msg_header.is_ccsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1003 header_length = 1;
never executed: header_length = 1;
0
1004 else-
1005 header_length = 12;
never executed: header_length = 12;
0
1006-
1007 memcpy(s->internal->init_buf->data, frag->fragment,-
1008 frag->msg_header.msg_len + header_length);-
1009 s->internal->init_num = frag->msg_header.msg_len + header_length;-
1010-
1011 dtls1_set_message_header_int(s, frag->msg_header.type,-
1012 frag->msg_header.msg_len, frag->msg_header.seq, 0,-
1013 frag->msg_header.frag_len);-
1014-
1015-
1016 saved_state.enc_write_ctx = s->internal->enc_write_ctx;-
1017 saved_state.write_hash = s->internal->write_hash;-
1018 saved_state.session = s->session;-
1019 saved_state.epoch = (s->d1->internal)->w_epoch;-
1020-
1021 (s->d1->internal)->retransmitting = 1;-
1022-
1023-
1024 s->internal->enc_write_ctx = frag->msg_header.saved_retransmit_state.enc_write_ctx;-
1025 s->internal->write_hash = frag->msg_header.saved_retransmit_state.write_hash;-
1026 s->session = frag->msg_header.saved_retransmit_state.session;-
1027 (s->d1->internal)->w_epoch = frag->msg_header.saved_retransmit_state.epoch;-
1028-
1029 if (frag->msg_header.saved_retransmit_state.epoch ==
frag->msg_head...tate.epoch - 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1030 saved_state.epoch - 1
frag->msg_head...tate.epoch - 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1031 memcpy(save_write_sequence, (s->s3->internal)->write_sequence,-
1032 sizeof((s->s3->internal)->write_sequence));-
1033 memcpy((s->s3->internal)->write_sequence, (s->d1->internal)->last_write_sequence,-
1034 sizeof((s->s3->internal)->write_sequence));-
1035 }
never executed: end of block
0
1036-
1037 ret = dtls1_do_write(s, frag->msg_header.is_ccs ?-
1038 20 : 22);-
1039-
1040-
1041 s->internal->enc_write_ctx = saved_state.enc_write_ctx;-
1042 s->internal->write_hash = saved_state.write_hash;-
1043 s->session = saved_state.session;-
1044 (s->d1->internal)->w_epoch = saved_state.epoch;-
1045-
1046 if (frag->msg_header.saved_retransmit_state.epoch ==
frag->msg_head...tate.epoch - 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1047 saved_state.epoch - 1
frag->msg_head...tate.epoch - 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1048 memcpy((s->d1->internal)->last_write_sequence, (s->s3->internal)->write_sequence,-
1049 sizeof((s->s3->internal)->write_sequence));-
1050 memcpy((s->s3->internal)->write_sequence, save_write_sequence,-
1051 sizeof((s->s3->internal)->write_sequence));-
1052 }
never executed: end of block
0
1053-
1054 (s->d1->internal)->retransmitting = 0;-
1055-
1056 (void)(int)BIO_ctrl(SSL_get_wbio(s),11,0,-
1057 ((void *)0)-
1058 );-
1059 return
never executed: return ret;
ret;
never executed: return ret;
0
1060}-
1061-
1062-
1063void-
1064dtls1_clear_record_buffer(SSL *s)-
1065{-
1066 pitem *item;-
1067-
1068 for(item = pqueue_pop(s->d1->sent_messages); item !=
item != ((void *)0)Description
TRUEevaluated 87 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 55 times by 1 test
Evaluated by:
  • ssltest
55-87
1069 ((void *)0)
item != ((void *)0)Description
TRUEevaluated 87 times by 1 test
Evaluated by:
  • ssltest
FALSEevaluated 55 times by 1 test
Evaluated by:
  • ssltest
55-87
1070 ;-
1071 item = pqueue_pop(s->d1->sent_messages)) {-
1072 dtls1_hm_fragment_free((hm_fragment *)item->data);-
1073 pitem_free(item);-
1074 }
executed 87 times by 1 test: end of block
Executed by:
  • ssltest
87
1075}
executed 55 times by 1 test: end of block
Executed by:
  • ssltest
55
1076-
1077void-
1078dtls1_set_message_header(SSL *s, unsigned char mt, unsigned long len,-
1079 unsigned long frag_off, unsigned long frag_len)-
1080{-
1081-
1082 if (frag_off == 0
frag_off == 0Description
TRUEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
&& !(s->d1->internal)->listen
!(s->d1->internal)->listenDescription
TRUEevaluated 99 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
) {
0-99
1083 (s->d1->internal)->handshake_write_seq = (s->d1->internal)->next_handshake_write_seq;-
1084 (s->d1->internal)->next_handshake_write_seq++;-
1085 }
executed 99 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
99
1086-
1087 dtls1_set_message_header_int(s, mt, len, (s->d1->internal)->handshake_write_seq,-
1088 frag_off, frag_len);-
1089}
executed 99 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
99
1090-
1091-
1092void-
1093dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len,-
1094 unsigned short seq_num, unsigned long frag_off, unsigned long frag_len)-
1095{-
1096 struct hm_header_st *msg_hdr = &(s->d1->internal)->w_msg_hdr;-
1097-
1098 msg_hdr->type = mt;-
1099 msg_hdr->msg_len = len;-
1100 msg_hdr->seq = seq_num;-
1101 msg_hdr->frag_off = frag_off;-
1102 msg_hdr->frag_len = frag_len;-
1103}
executed 121 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
121
1104-
1105static void-
1106dtls1_fix_message_header(SSL *s, unsigned long frag_off, unsigned long frag_len)-
1107{-
1108 struct hm_header_st *msg_hdr = &(s->d1->internal)->w_msg_hdr;-
1109-
1110 msg_hdr->frag_off = frag_off;-
1111 msg_hdr->frag_len = frag_len;-
1112}
executed 110 times by 2 tests: end of block
Executed by:
  • clienttest
  • ssltest
110
1113-
1114static int-
1115dtls1_write_message_header(const struct hm_header_st *msg_hdr,-
1116 unsigned long frag_off, unsigned long frag_len, unsigned char *p)-
1117{-
1118 CBB cbb;-
1119-
1120-
1121 if (!CBB_init_fixed(&cbb, p, 12)
!CBB_init_fixed(&cbb, p, 12)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1122 return
never executed: return 0;
0;
never executed: return 0;
0
1123 if (!CBB_add_u8(&cbb, msg_hdr->type)
!CBB_add_u8(&c...msg_hdr->type)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1124 goto
never executed: goto err;
err;
never executed: goto err;
0
1125 if (!CBB_add_u24(&cbb, msg_hdr->msg_len)
!CBB_add_u24(&..._hdr->msg_len)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1126 goto
never executed: goto err;
err;
never executed: goto err;
0
1127 if (!CBB_add_u16(&cbb, msg_hdr->seq)
!CBB_add_u16(&... msg_hdr->seq)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1128 goto
never executed: goto err;
err;
never executed: goto err;
0
1129 if (!CBB_add_u24(&cbb, frag_off)
!CBB_add_u24(&cbb, frag_off)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1130 goto
never executed: goto err;
err;
never executed: goto err;
0
1131 if (!CBB_add_u24(&cbb, frag_len)
!CBB_add_u24(&cbb, frag_len)Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1132 goto
never executed: goto err;
err;
never executed: goto err;
0
1133 if (!CBB_finish(&cbb,
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-307
1134 ((void *)0)
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-307
1135 ,
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-307
1136 ((void *)0)
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
0-307
1137 )
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 307 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
)
0-307
1138 goto
never executed: goto err;
err;
never executed: goto err;
0
1139-
1140 return
executed 307 times by 2 tests: return 1;
Executed by:
  • clienttest
  • ssltest
1;
executed 307 times by 2 tests: return 1;
Executed by:
  • clienttest
  • ssltest
307
1141-
1142 err:-
1143 CBB_cleanup(&cbb);-
1144 return
never executed: return 0;
0;
never executed: return 0;
0
1145}-
1146-
1147unsigned int-
1148dtls1_min_mtu(void)-
1149{-
1150 return
executed 265 times by 2 tests: return (g_probable_mtu[(sizeof(g_probable_mtu) / sizeof(g_probable_mtu[0])) - 1]);
Executed by:
  • clienttest
  • ssltest
(g_probable_mtu[(sizeof(g_probable_mtu) /
executed 265 times by 2 tests: return (g_probable_mtu[(sizeof(g_probable_mtu) / sizeof(g_probable_mtu[0])) - 1]);
Executed by:
  • clienttest
  • ssltest
265
1151 sizeof(g_probable_mtu[0])) - 1]);
executed 265 times by 2 tests: return (g_probable_mtu[(sizeof(g_probable_mtu) / sizeof(g_probable_mtu[0])) - 1]);
Executed by:
  • clienttest
  • ssltest
265
1152}-
1153-
1154static unsigned int-
1155dtls1_guess_mtu(unsigned int curr_mtu)-
1156{-
1157 unsigned int i;-
1158-
1159 if (curr_mtu == 0
curr_mtu == 0Description
TRUEevaluated 23 times by 2 tests
Evaluated by:
  • clienttest
  • ssltest
FALSEnever evaluated
)
0-23
1160 return
executed 23 times by 2 tests: return g_probable_mtu[0];
Executed by:
  • clienttest
  • ssltest
g_probable_mtu[0];
executed 23 times by 2 tests: return g_probable_mtu[0];
Executed by:
  • clienttest
  • ssltest
23
1161-
1162 for (i = 0; i < sizeof(g_probable_mtu) / sizeof(g_probable_mtu[0])
i < sizeof(g_p...obable_mtu[0])Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
1163 if (curr_mtu > g_probable_mtu[i]
curr_mtu > g_probable_mtu[i]Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1164 return
never executed: return g_probable_mtu[i];
g_probable_mtu[i];
never executed: return g_probable_mtu[i];
0
1165-
1166 return
never executed: return curr_mtu;
curr_mtu;
never executed: return curr_mtu;
0
1167}-
1168-
1169int-
1170dtls1_get_message_header(unsigned char *data, struct hm_header_st *msg_hdr)-
1171{-
1172 CBS header;-
1173 uint32_t msg_len, frag_off, frag_len;-
1174 uint16_t seq;-
1175 uint8_t type;-
1176-
1177 CBS_init(&header, data, sizeof(*msg_hdr));-
1178-
1179 memset(msg_hdr, 0, sizeof(*msg_hdr));-
1180-
1181 if (!CBS_get_u8(&header, &type)
!CBS_get_u8(&header, &type)Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
0-109
1182 return
never executed: return 0;
0;
never executed: return 0;
0
1183 if (!CBS_get_u24(&header, &msg_len)
!CBS_get_u24(&...der, &msg_len)Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
0-109
1184 return
never executed: return 0;
0;
never executed: return 0;
0
1185 if (!CBS_get_u16(&header, &seq)
!CBS_get_u16(&header, &seq)Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
0-109
1186 return
never executed: return 0;
0;
never executed: return 0;
0
1187 if (!CBS_get_u24(&header, &frag_off)
!CBS_get_u24(&...er, &frag_off)Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
0-109
1188 return
never executed: return 0;
0;
never executed: return 0;
0
1189 if (!CBS_get_u24(&header, &frag_len)
!CBS_get_u24(&...er, &frag_len)Description
TRUEnever evaluated
FALSEevaluated 109 times by 1 test
Evaluated by:
  • ssltest
)
0-109
1190 return
never executed: return 0;
0;
never executed: return 0;
0
1191-
1192 msg_hdr->type = type;-
1193 msg_hdr->msg_len = msg_len;-
1194 msg_hdr->seq = seq;-
1195 msg_hdr->frag_off = frag_off;-
1196 msg_hdr->frag_len = frag_len;-
1197-
1198 return
executed 109 times by 1 test: return 1;
Executed by:
  • ssltest
1;
executed 109 times by 1 test: return 1;
Executed by:
  • ssltest
109
1199}-
1200-
1201void-
1202dtls1_get_ccs_header(unsigned char *data, struct ccs_header_st *ccs_hdr)-
1203{-
1204 memset(ccs_hdr, 0x00, sizeof(struct ccs_header_st));-
1205-
1206 ccs_hdr->type = *(data++);-
1207}
executed 22 times by 1 test: end of block
Executed by:
  • ssltest
22
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2