[FFmpeg-cvslog] r23859 - trunk/libavformat/rtpdec.c

mstorsjo subversion
Mon Jun 28 22:27:25 CEST 2010


Author: mstorsjo
Date: Mon Jun 28 22:27:25 2010
New Revision: 23859

Log:
rtpdec: Malloc the fmtp value buffer

This allows very large value strings, needed for xiph extradata.

Patch by Josh Allmann, joshua dot allmann at gmail

Modified:
   trunk/libavformat/rtpdec.c

Modified: trunk/libavformat/rtpdec.c
==============================================================================
--- trunk/libavformat/rtpdec.c	Mon Jun 28 21:14:40 2010	(r23858)
+++ trunk/libavformat/rtpdec.c	Mon Jun 28 22:27:25 2010	(r23859)
@@ -538,8 +538,14 @@ int ff_parse_fmtp(AVStream *stream, Payl
                                     char *attr, char *value))
 {
     char attr[256];
-    char value[4096];
+    char *value;
     int res;
+    int value_size = strlen(p) + 1;
+
+    if (!(value = av_malloc(value_size))) {
+        av_log(stream, AV_LOG_ERROR, "Failed to allocate data for FMTP.");
+        return AVERROR(ENOMEM);
+    }
 
     // remove protocol identifier
     while (*p && *p == ' ') p++; // strip spaces
@@ -548,11 +554,14 @@ int ff_parse_fmtp(AVStream *stream, Payl
 
     while (ff_rtsp_next_attr_and_value(&p,
                                        attr, sizeof(attr),
-                                       value, sizeof(value))) {
+                                       value, value_size)) {
 
         res = parse_fmtp(stream, data, attr, value);
-        if (res < 0)
+        if (res < 0 && res != AVERROR_PATCHWELCOME) {
+            av_free(value);
             return res;
+        }
     }
+    av_free(value);
     return 0;
 }



More information about the ffmpeg-cvslog mailing list