diff --git a/ChangeLog b/ChangeLog index aeadd28972..50919c5f05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-11-16 Wim Taymans + + Patch by: Tommi Myöhänen + + * gst-libs/gst/rtsp/gstrtspmessage.c: (gst_rtsp_message_unset): + Fix leaking headers. Fixes #496761. + 2007-11-16 Wim Taymans Patch by: Tommi Myöhänen diff --git a/gst-libs/gst/rtsp/gstrtspmessage.c b/gst-libs/gst/rtsp/gstrtspmessage.c index 297cdc3d90..c1dc4d99c1 100644 --- a/gst-libs/gst/rtsp/gstrtspmessage.c +++ b/gst-libs/gst/rtsp/gstrtspmessage.c @@ -452,9 +452,16 @@ gst_rtsp_message_unset (GstRTSPMessage * msg) break; } - if (msg->hdr_fields != NULL) - g_array_free (msg->hdr_fields, TRUE); + if (msg->hdr_fields != NULL) { + gint i; + for (i = 0; i < msg->hdr_fields->len; i++) { + RTSPKeyValue *keyval = &g_array_index (msg->hdr_fields, RTSPKeyValue, i); + + g_free (keyval->value); + } + g_array_free (msg->hdr_fields, TRUE); + } g_free (msg->body); memset (msg, 0, sizeof *msg);