diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-11-30 15:58:19 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-11-30 16:14:18 +0100 |
commit | 50cbe09d8ced75422571d29bbec1f35a33a0d3ed (patch) | |
tree | be831cbf227873d3d6eca18ba779ba5d2afdf8b3 | |
parent | d56b15017a1e4edf302cb4b7e6bdf8eb12a0a407 (diff) | |
download | ffmpeg-50cbe09d8ced75422571d29bbec1f35a33a0d3ed.tar.gz |
smacker: check smacker_decode_tree() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/smacker.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c index ce1262d90b..095f0d0e52 100644 --- a/libavcodec/smacker.c +++ b/libavcodec/smacker.c @@ -205,7 +205,9 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int tmp2.values = av_mallocz(256 * sizeof(int)); if(get_bits1(gb)) { - smacker_decode_tree(gb, &tmp1, 0, 0); + res = smacker_decode_tree(gb, &tmp1, 0, 0); + if (res < 0) + return res; skip_bits1(gb); if(tmp1.current > 1) { res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length, @@ -221,7 +223,9 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int av_log(smk->avctx, AV_LOG_ERROR, "Skipping low bytes tree\n"); } if(get_bits1(gb)){ - smacker_decode_tree(gb, &tmp2, 0, 0); + res = smacker_decode_tree(gb, &tmp2, 0, 0); + if (res < 0) + return res; skip_bits1(gb); if(tmp2.current > 1) { res = init_vlc(&vlc[1], SMKTREE_BITS, tmp2.length, @@ -655,7 +659,9 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, h[i].lengths = av_mallocz(256 * sizeof(int)); h[i].values = av_mallocz(256 * sizeof(int)); skip_bits1(&gb); - smacker_decode_tree(&gb, &h[i], 0, 0); + res = smacker_decode_tree(&gb, &h[i], 0, 0); + if (res < 0) + return res; skip_bits1(&gb); if(h[i].current > 1) { res = init_vlc(&vlc[i], SMKTREE_BITS, h[i].length, |