diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2009-07-01 11:29:01 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2009-07-01 11:29:01 +0000 |
commit | 2b3cd246e5680c3842f04ff014fbe149bc1878b9 (patch) | |
tree | 0ae12f29e795e403931dccdcc61a3d9dfa0a881d /ssl/d1_pkt.c | |
parent | 7171ade2c218542184238f7c38b195e21b437914 (diff) |
PR: 1962
Submitted by: Daniel Mentz <daniel.m@sent.com>
Reviewed by: steve@openssl.org
Fix "for dtls1_get_record() returns a bad record in one edge case" bug.
Diffstat (limited to 'ssl/d1_pkt.c')
-rw-r--r-- | ssl/d1_pkt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c index 394daf6258..35e83d8b52 100644 --- a/ssl/d1_pkt.c +++ b/ssl/d1_pkt.c @@ -623,6 +623,7 @@ again: /* this packet contained a partial record, dump it */ if ( n != i) { + rr->length = 0; s->packet_length = 0; goto again; } @@ -636,6 +637,7 @@ again: bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch); if ( bitmap == NULL) { + rr->length = 0; s->packet_length = 0; /* dump this record */ goto again; /* get another record */ } @@ -660,6 +662,7 @@ again: { dtls1_record_bitmap_update(s, bitmap); dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), rr->seq_num); + rr->length = 0; s->packet_length = 0; goto again; } |