Free up s->d1->buffered_app_data.q properly.
authorzhu qun-ying <qunying@yahoo.com>
Mon, 2 Jun 2014 13:38:52 +0000 (14:38 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 2 Jun 2014 13:40:32 +0000 (14:40 +0100)
PR#3286
(cherry picked from commit 71e95000afb2227fe5cac1c79ae884338bcd8d0b)

ssl/d1_lib.c

index 97f325f32cb04fde83965f5e1faa0df33e20494e..ebee36840e766c7b62dc55d21a2d041495266931 100644 (file)
@@ -175,9 +175,12 @@ static void dtls1_clear_queues(SSL *s)
 
        while ( (item = pqueue_pop(s->d1->buffered_app_data.q)) != NULL)
                {
-               frag = (hm_fragment *)item->data;
-               OPENSSL_free(frag->fragment);
-               OPENSSL_free(frag);
+               rdata = (DTLS1_RECORD_DATA *) item->data;
+               if (rdata->rbuf.buf)
+                       {
+                       OPENSSL_free(rdata->rbuf.buf);
+                       }
+               OPENSSL_free(item->data);
                pitem_free(item);
                }
        }