From e7b36268be1305242a835d0e5771430ea463d8d2 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 14 Dec 2019 23:19:26 +0100 Subject: [PATCH] dump_extradata: Insert extradata even for small packets 3469cfab added a check for whether the extradata coincided with the beginning of the packet's data in order not to add extradata to packets that already have it. But the check used was buggy for packets whose size is smaller than the extradata's size. This commit fixes this. Signed-off-by: Andreas Rheinhardt Signed-off-by: Michael Niedermayer (cherry picked from commit a88a3cdb4b166c83b823d34abe8a7a6743c7ebd5) --- libavcodec/dump_extradata_bsf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/dump_extradata_bsf.c b/libavcodec/dump_extradata_bsf.c index b641508234..0b6d404792 100644 --- a/libavcodec/dump_extradata_bsf.c +++ b/libavcodec/dump_extradata_bsf.c @@ -51,8 +51,8 @@ static int dump_extradata(AVBSFContext *ctx, AVPacket *out) if (ctx->par_in->extradata && (s->freq == DUMP_FREQ_ALL || (s->freq == DUMP_FREQ_KEYFRAME && in->flags & AV_PKT_FLAG_KEY)) && - in->size >= ctx->par_in->extradata_size && - memcmp(in->data, ctx->par_in->extradata, ctx->par_in->extradata_size)) { + (in->size < ctx->par_in->extradata_size || + memcmp(in->data, ctx->par_in->extradata, ctx->par_in->extradata_size))) { if (in->size >= INT_MAX - ctx->par_in->extradata_size) { ret = AVERROR(ERANGE); goto fail;