mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
h264dec: Prevent CABAC and CAVLC bitsteram overreading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
28ccda7823
commit
23f5cff92c
@ -174,20 +174,24 @@ const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src, int *dst_l
|
|||||||
i-= RS;
|
i-= RS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(i>=length-1){ //no escaped 0
|
|
||||||
*dst_length= length;
|
|
||||||
*consumed= length+1; //+1 for the header
|
|
||||||
return src;
|
|
||||||
}
|
|
||||||
|
|
||||||
bufidx = h->nal_unit_type == NAL_DPC ? 1 : 0; // use second escape buffer for inter data
|
bufidx = h->nal_unit_type == NAL_DPC ? 1 : 0; // use second escape buffer for inter data
|
||||||
av_fast_malloc(&h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length+FF_INPUT_BUFFER_PADDING_SIZE);
|
si=h->rbsp_buffer_size[bufidx];
|
||||||
|
av_fast_malloc(&h->rbsp_buffer[bufidx], &h->rbsp_buffer_size[bufidx], length+FF_INPUT_BUFFER_PADDING_SIZE+MAX_MBPAIR_SIZE);
|
||||||
dst= h->rbsp_buffer[bufidx];
|
dst= h->rbsp_buffer[bufidx];
|
||||||
|
if(si != h->rbsp_buffer_size[bufidx])
|
||||||
|
memset(dst + length, 0, FF_INPUT_BUFFER_PADDING_SIZE+MAX_MBPAIR_SIZE);
|
||||||
|
|
||||||
if (dst == NULL){
|
if (dst == NULL){
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(i>=length-1){ //no escaped 0
|
||||||
|
*dst_length= length;
|
||||||
|
*consumed= length+1; //+1 for the header
|
||||||
|
memcpy(dst, src, length);
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
//printf("decoding esc\n");
|
//printf("decoding esc\n");
|
||||||
memcpy(dst, src, i);
|
memcpy(dst, src, i);
|
||||||
si=di=i;
|
si=di=i;
|
||||||
|
@ -46,6 +46,8 @@
|
|||||||
|
|
||||||
#define MAX_DELAYED_PIC_COUNT 16
|
#define MAX_DELAYED_PIC_COUNT 16
|
||||||
|
|
||||||
|
#define MAX_MBPAIR_SIZE (256*1024) // a tighter bound could be calculated if someone cares about a few bytes
|
||||||
|
|
||||||
/* Compiling in interlaced support reduces the speed
|
/* Compiling in interlaced support reduces the speed
|
||||||
* of progressive decoding by about 2%. */
|
* of progressive decoding by about 2%. */
|
||||||
#define ALLOW_INTERLACE
|
#define ALLOW_INTERLACE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user