From: Aurelien David Date: Fri, 10 Feb 2023 14:36:49 +0000 (+0100) Subject: [PATCH] av1: flush samples on parse error (#2387) X-Git-Tag: archive/raspbian/1.0.1+dfsg1-4+rpi1+deb11u3^2~13 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=51168fe5b7a318d8e4de5501d341f0a9be566342;p=gpac.git [PATCH] av1: flush samples on parse error (#2387) Gbp-Pq: Name CVE-2023-1449.patch --- diff --git a/src/filters/reframe_av1.c b/src/filters/reframe_av1.c index 67eaa74..be7d86c 100644 --- a/src/filters/reframe_av1.c +++ b/src/filters/reframe_av1.c @@ -720,7 +720,7 @@ static GF_Err av1dmx_parse_flush_sample(GF_Filter *filter, GF_AV1DmxCtx *ctx) if (!ctx->opid) return GF_NON_COMPLIANT_BITSTREAM; - + gf_bs_get_content_no_truncate(ctx->state.bs, &ctx->state.frame_obus, &pck_size, &ctx->state.frame_obus_alloc); if (!pck_size) { @@ -804,7 +804,12 @@ GF_Err av1dmx_parse_av1(GF_Filter *filter, GF_AV1DmxCtx *ctx) //check pid state av1dmx_check_pid(filter, ctx); - if (e) return e; + if (e) { + if (e!=GF_EOS && e!=GF_BUFFER_TOO_SMALL) { + av1dmx_parse_flush_sample(filter, ctx); + } + return e; + } if (!ctx->opid) { @@ -1114,4 +1119,3 @@ const GF_FilterRegister *av1dmx_register(GF_FilterSession *session) return NULL; } #endif // GPAC_DISABLE_AV_PARSERS -