diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libssl/d1_both.c | 10 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/d1_both.c | 10 |
2 files changed, 6 insertions, 14 deletions
diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c index db57bf9d3d..10b62cd410 100644 --- a/src/lib/libssl/d1_both.c +++ b/src/lib/libssl/d1_both.c | |||
@@ -618,7 +618,7 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
618 | frag->msg_header.frag_len = frag->msg_header.msg_len; | 618 | frag->msg_header.frag_len = frag->msg_header.msg_len; |
619 | frag->msg_header.frag_off = 0; | 619 | frag->msg_header.frag_off = 0; |
620 | } else | 620 | } else |
621 | frag = (hm_fragment*) item->data; | 621 | frag = (hm_fragment*)item->data; |
622 | 622 | ||
623 | /* If message is already reassembled, this must be a | 623 | /* If message is already reassembled, this must be a |
624 | * retransmit and can be dropped. | 624 | * retransmit and can be dropped. |
@@ -671,10 +671,8 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
671 | return DTLS1_HM_FRAGMENT_RETRY; | 671 | return DTLS1_HM_FRAGMENT_RETRY; |
672 | 672 | ||
673 | err: | 673 | err: |
674 | if (frag != NULL) | 674 | if (item == NULL && frag != NULL) |
675 | dtls1_hm_fragment_free(frag); | 675 | dtls1_hm_fragment_free(frag); |
676 | if (item != NULL) | ||
677 | free(item); | ||
678 | *ok = 0; | 676 | *ok = 0; |
679 | return i; | 677 | return i; |
680 | } | 678 | } |
@@ -755,10 +753,8 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
755 | return DTLS1_HM_FRAGMENT_RETRY; | 753 | return DTLS1_HM_FRAGMENT_RETRY; |
756 | 754 | ||
757 | err: | 755 | err: |
758 | if (frag != NULL) | 756 | if (item == NULL && frag != NULL) |
759 | dtls1_hm_fragment_free(frag); | 757 | dtls1_hm_fragment_free(frag); |
760 | if (item != NULL) | ||
761 | free(item); | ||
762 | *ok = 0; | 758 | *ok = 0; |
763 | return i; | 759 | return i; |
764 | } | 760 | } |
diff --git a/src/lib/libssl/src/ssl/d1_both.c b/src/lib/libssl/src/ssl/d1_both.c index db57bf9d3d..10b62cd410 100644 --- a/src/lib/libssl/src/ssl/d1_both.c +++ b/src/lib/libssl/src/ssl/d1_both.c | |||
@@ -618,7 +618,7 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
618 | frag->msg_header.frag_len = frag->msg_header.msg_len; | 618 | frag->msg_header.frag_len = frag->msg_header.msg_len; |
619 | frag->msg_header.frag_off = 0; | 619 | frag->msg_header.frag_off = 0; |
620 | } else | 620 | } else |
621 | frag = (hm_fragment*) item->data; | 621 | frag = (hm_fragment*)item->data; |
622 | 622 | ||
623 | /* If message is already reassembled, this must be a | 623 | /* If message is already reassembled, this must be a |
624 | * retransmit and can be dropped. | 624 | * retransmit and can be dropped. |
@@ -671,10 +671,8 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
671 | return DTLS1_HM_FRAGMENT_RETRY; | 671 | return DTLS1_HM_FRAGMENT_RETRY; |
672 | 672 | ||
673 | err: | 673 | err: |
674 | if (frag != NULL) | 674 | if (item == NULL && frag != NULL) |
675 | dtls1_hm_fragment_free(frag); | 675 | dtls1_hm_fragment_free(frag); |
676 | if (item != NULL) | ||
677 | free(item); | ||
678 | *ok = 0; | 676 | *ok = 0; |
679 | return i; | 677 | return i; |
680 | } | 678 | } |
@@ -755,10 +753,8 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
755 | return DTLS1_HM_FRAGMENT_RETRY; | 753 | return DTLS1_HM_FRAGMENT_RETRY; |
756 | 754 | ||
757 | err: | 755 | err: |
758 | if (frag != NULL) | 756 | if (item == NULL && frag != NULL) |
759 | dtls1_hm_fragment_free(frag); | 757 | dtls1_hm_fragment_free(frag); |
760 | if (item != NULL) | ||
761 | free(item); | ||
762 | *ok = 0; | 758 | *ok = 0; |
763 | return i; | 759 | return i; |
764 | } | 760 | } |