diff rm.c @ 884:2ece9c9dd94c libavformat

malloc padding to avoid reading past the malloc()ed area. Credits to Mikulas Patocka (mikulas at artax karlin mff cuni cz)
author henry
date Sat, 17 Dec 2005 17:57:03 +0000
parents 1f093ae472d8
children da1d5db0ce5c
line wrap: on
line diff
--- a/rm.c	Sat Dec 17 11:27:37 2005 +0000
+++ b/rm.c	Sat Dec 17 17:57:03 2005 +0000
@@ -557,7 +557,7 @@
             codecdata_length = get_be32(pb);
             st->codec->codec_id = CODEC_ID_COOK;
             st->codec->extradata_size= codecdata_length;
-            st->codec->extradata= av_mallocz(st->codec->extradata_size);
+            st->codec->extradata= av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
             for(i = 0; i < codecdata_length; i++)
                 ((uint8_t*)st->codec->extradata)[i] = get_byte(pb);
             rm->audio_framesize = st->codec->block_align;
@@ -708,7 +708,7 @@
                 get_be16(pb);
                 
                 st->codec->extradata_size= codec_data_size - (url_ftell(pb) - codec_pos);
-                st->codec->extradata= av_malloc(st->codec->extradata_size);
+                st->codec->extradata= av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
                 get_buffer(pb, st->codec->extradata, st->codec->extradata_size);
                 
 //                av_log(NULL, AV_LOG_DEBUG, "fps= %d fps2= %d\n", fps, fps2);