Commit 481547f0 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix from 1.0.0-stable.

parent 8d932f6f
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -562,7 +562,16 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok)
	if ((msg_hdr->frag_off+frag_len) > msg_hdr->msg_len)
		goto err;

	if (msg_hdr->seq <= s->d1->handshake_read_seq)
	/* Try to find item in queue, to prevent duplicate entries */
	memset(seq64be,0,sizeof(seq64be));
	seq64be[6] = (unsigned char) (msg_hdr->seq>>8);
	seq64be[7] = (unsigned char) msg_hdr->seq;
	item = pqueue_find(s->d1->buffered_messages, seq64be);
	
	/* Discard the message if sequence number was already there, is
	 * too far in the future or the fragment is already in the queue */
	if (msg_hdr->seq <= s->d1->handshake_read_seq ||
		msg_hdr->seq > s->d1->handshake_read_seq + 10 || item != NULL)
		{
		unsigned char devnull [256];