Free metadata if already allocated; fixes a memleak if the header occurs twice
authorRonald S. Bultje <rsbultje@gmail.com>
Sat, 21 Mar 2009 20:59:59 +0000 (20:59 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Sat, 21 Mar 2009 20:59:59 +0000 (20:59 +0000)
in a stream (e.g. malicious input, broken file, etc.). See summary in "[PATCH]
rtsp.c small cleanups" thread on mailinglist.

Originally committed as revision 18126 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtsp.c

index 4737814..5100c97 100644 (file)
@@ -202,6 +202,8 @@ static void sdp_parse_fmtp_config(AVCodecContext *codec, char *attr, char *value
             if (!strcmp(attr, "config")) {
                 /* decode the hexa encoded parameter */
                 int len = hex_to_data(NULL, value);
+                if (codec->extradata)
+                    av_free(codec->extradata);
                 codec->extradata = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE);
                 if (!codec->extradata)
                     return;