Lines 561-567
dtls1_process_out_of_seq_message(SSL *s,
Link Here
|
561 |
if ((msg_hdr->frag_off+frag_len) > msg_hdr->msg_len) |
561 |
if ((msg_hdr->frag_off+frag_len) > msg_hdr->msg_len) |
562 |
goto err; |
562 |
goto err; |
563 |
|
563 |
|
564 |
if (msg_hdr->seq <= s->d1->handshake_read_seq) |
564 |
/* Try to find item in queue, to prevent duplicate entries */ |
|
|
565 |
pq_64bit_init(&seq64); |
566 |
pq_64bit_assign_word(&seq64, msg_hdr->seq); |
567 |
item = pqueue_find(s->d1->buffered_messages, seq64); |
568 |
pq_64bit_free(&seq64); |
569 |
|
570 |
/* Discard the message if sequence number was already there, is |
571 |
* too far in the future or the fragment is already in the queue */ |
572 |
if (msg_hdr->seq <= s->d1->handshake_read_seq || |
573 |
msg_hdr->seq > s->d1->handshake_read_seq + 10 || item != NULL) |
565 |
{ |
574 |
{ |
566 |
unsigned char devnull [256]; |
575 |
unsigned char devnull [256]; |
567 |
|
576 |
|