aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2023-06-15 10:39:44 -0300
committerJames Almer <jamrial@gmail.com>2023-06-17 10:08:54 -0300
commit46a9be01b8c200636fb3ebbe43f209ae27b26dbc (patch)
tree6080adfea59e8ffee818a5d0cc91acf51eb5f406
parent811460f5c2d32203aef1a6b7f15b3a5f831b107e (diff)
downloadffmpeg-46a9be01b8c200636fb3ebbe43f209ae27b26dbc.tar.gz
avcodec/evc_parse: free pps struct on parsing failure
Prevents future checks for their presence from succeeding. Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavcodec/evc_parse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/evc_parse.c b/libavcodec/evc_parse.c
index 095598e940..1d8757b231 100644
--- a/libavcodec/evc_parse.c
+++ b/libavcodec/evc_parse.c
@@ -367,8 +367,10 @@ EVCParserPPS *ff_evc_parse_pps(EVCParserContext *ctx, const uint8_t *bs, int bs_
pps->pps_pic_parameter_set_id = pps_pic_parameter_set_id;
pps->pps_seq_parameter_set_id = get_ue_golomb(&gb);
- if (pps->pps_seq_parameter_set_id >= EVC_MAX_SPS_COUNT)
+ if (pps->pps_seq_parameter_set_id >= EVC_MAX_SPS_COUNT) {
+ av_freep(&ctx->pps[pps_pic_parameter_set_id]);
return NULL;
+ }
pps->num_ref_idx_default_active_minus1[0] = get_ue_golomb(&gb);
pps->num_ref_idx_default_active_minus1[1] = get_ue_golomb(&gb);