1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

64bit and reading over the end of the array fixes

Originally committed as revision 3547 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2004-10-01 16:00:00 +00:00
parent 96cc9e5c61
commit 95f97de146

View File

@ -1026,21 +1026,18 @@ static int mpeg_mux_end(AVFormatContext *ctx)
static int mpegps_probe(AVProbeData *p) static int mpegps_probe(AVProbeData *p)
{ {
int code, c, i; int i;
int size= FFMIN(20, p->buf_size);
uint32_t code=0xFF;
code = 0xff;
/* we search the first start code. If it is a packet start code, /* we search the first start code. If it is a packet start code,
then we decide it is mpeg ps. We do not send highest value to then we decide it is mpeg ps. We do not send highest value to
give a chance to mpegts */ give a chance to mpegts */
/* NOTE: the search range was restricted to avoid too many false /* NOTE: the search range was restricted to avoid too many false
detections */ detections */
if (p->buf_size < 6) for (i = 0; i < size; i++) {
return 0; code = (code << 8) | p->buf[i];
for (i = 0; i < 20; i++) {
c = p->buf[i];
code = (code << 8) | c;
if ((code & 0xffffff00) == 0x100) { if ((code & 0xffffff00) == 0x100) {
if (code == PACK_START_CODE || if (code == PACK_START_CODE ||
code == SYSTEM_HEADER_START_CODE || code == SYSTEM_HEADER_START_CODE ||