rtpdec: Return ENOMEM if H.264 RTP fails to allocate memory for SDP extradata
authorJosh Allmann <joshua.allmann@gmail.com>
Mon, 28 Jun 2010 11:25:39 +0000 (11:25 +0000)
committerMartin Storsjö <martin@martin.st>
Mon, 28 Jun 2010 11:25:39 +0000 (11:25 +0000)
Patch by Josh Allmann, joshua dot allmann at gmail

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

libavformat/rtpdec_h264.c

index 49db08a..a6e0de8 100644 (file)
@@ -69,7 +69,7 @@ struct PayloadContext {
 #define DEAD_COOKIE (0xdeaddead)        ///< Cookie for the extradata; once it is freed.
 
 /* ---------------- private code */
-static void sdp_parse_fmtp_config_h264(AVStream * stream,
+static int sdp_parse_fmtp_config_h264(AVStream * stream,
                                        PayloadContext * h264_data,
                                        char *attr, char *value)
 {
@@ -155,11 +155,13 @@ static void sdp_parse_fmtp_config_h264(AVStream * stream,
                     codec->extradata_size+= sizeof(start_sequence)+packet_size;
                 } else {
                     av_log(codec, AV_LOG_ERROR, "Unable to allocate memory for extradata!");
+                    return AVERROR(ENOMEM);
                 }
             }
         }
         av_log(codec, AV_LOG_DEBUG, "Extradata set to %p (size: %d)!", codec->extradata, codec->extradata_size);
     }
+    return 0;
 }
 
 // return 0 on packet, no more left, 1 on packet, 1 on partial packet...