aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Aimar <fenrir@videolan.org>2011-09-11 18:51:52 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-11-03 03:33:41 +0100
commit6108f04d4f33611c5f878dd245fd268e18a06f98 (patch)
tree53f9639c967b3a5bcdcf8ac76b1e7f90e9a23bc8
parentb261ebfd220b05854d0a0cccde30eddb7a7e23dd (diff)
downloadffmpeg-6108f04d4f33611c5f878dd245fd268e18a06f98.tar.gz
Fixed segfault on corrupted smacker streams in the demuxer.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit d0121e8d969cde74fa7dbd96d3602109b051e701)
-rw-r--r--libavformat/smacker.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavformat/smacker.c b/libavformat/smacker.c
index a34dfde75c..b4fc5f7176 100644
--- a/libavformat/smacker.c
+++ b/libavformat/smacker.c
@@ -284,6 +284,10 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
frame_size -= 4;
smk->curstream++;
smk->bufs[smk->curstream] = av_realloc(smk->bufs[smk->curstream], size);
+ if (!smk->bufs[smk->curstream]) {
+ smk->buf_sizes[smk->curstream] = 0;
+ return AVERROR(ENOMEM);
+ }
smk->buf_sizes[smk->curstream] = size;
ret = get_buffer(s->pb, smk->bufs[smk->curstream], size);
if(ret != size)