jvdec: avoid unsigned overflow in comparison
The return type of strlen is size_t, i.e. unsigned, so if pd->buf_size is 3, the right side overflows leading to a wrong result of the comparison and subsequently a heap buffer overflow. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This commit is contained in:
parent
7f7fa90f7b
commit
db374790c7
@ -54,7 +54,7 @@ typedef struct JVDemuxContext {
|
|||||||
|
|
||||||
static int read_probe(AVProbeData *pd)
|
static int read_probe(AVProbeData *pd)
|
||||||
{
|
{
|
||||||
if (pd->buf[0] == 'J' && pd->buf[1] == 'V' && strlen(MAGIC) <= pd->buf_size - 4 &&
|
if (pd->buf[0] == 'J' && pd->buf[1] == 'V' && strlen(MAGIC) + 4 <= pd->buf_size &&
|
||||||
!memcmp(pd->buf + 4, MAGIC, strlen(MAGIC)))
|
!memcmp(pd->buf + 4, MAGIC, strlen(MAGIC)))
|
||||||
return AVPROBE_SCORE_MAX;
|
return AVPROBE_SCORE_MAX;
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user