Merge commit '5c54fc6195e52c329b88cf5a56d18628f0ee0029' into release/1.1
* commit '5c54fc6195e52c329b88cf5a56d18628f0ee0029': Prepare for 9.8 RELEASE update Changelog smacker: check frame size validity smacker: pad the extradata allocation smacker: check the return value of smacker_decode_tree smacker: fix an off by one in huff.length computation 4xm: do not overread the prestream buffer 4xm: validate the buffer size before parsing it 4xm: reject frames not compatible with the declared version 4xm: drop pointless assert 4xm: forward errors from decode_p_block 4xm: fold last_picture lazy allocation in decode_p_frame 4xm: do not overread while parsing header 4xm: refactor fourxm_read_header 4xm: K&R formatting cosmetics 4xm: use the correct logging context Conflicts: Changelog RELEASE libavcodec/4xm.c libavcodec/smacker.c libavformat/4xm.c libavformat/smacker.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -257,7 +257,7 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int
|
||||
ctx.recode2 = tmp2.values;
|
||||
ctx.last = last;
|
||||
|
||||
huff.length = ((size + 3) >> 2) + 3;
|
||||
huff.length = ((size + 3) >> 2) + 4;
|
||||
huff.maxlength = 0;
|
||||
huff.current = 0;
|
||||
huff.values = av_mallocz(huff.length * sizeof(int));
|
||||
@@ -661,9 +661,16 @@ 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);
|
||||
res = smacker_decode_tree(&gb, &h[i], 0, 0);
|
||||
if (res < 0)
|
||||
return res;
|
||||
if (smacker_decode_tree(&gb, &h[i], 0, 0) < 0) {
|
||||
for (; i >= 0; i--) {
|
||||
if (vlc[i].table)
|
||||
ff_free_vlc(&vlc[i]);
|
||||
av_free(h[i].bits);
|
||||
av_free(h[i].lengths);
|
||||
av_free(h[i].values);
|
||||
}
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
skip_bits1(&gb);
|
||||
if(h[i].current > 1) {
|
||||
res = init_vlc(&vlc[i], SMKTREE_BITS, h[i].length,
|
||||
|
||||
Reference in New Issue
Block a user