From dd062bfaf3ada3b95f55f4d82d1dde440de4e17d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 7 Oct 2025 01:58:34 +0200 Subject: [PATCH] avcodec/g723_1enc: Make min_err 64bit This is intending to fix the case described in https://lists.ffmpeg.org/archives/list/ffmpeg-devel@ffmpeg.org/thread/AAZ7GJPPUJI5SCVTDGJ6QL7UUEP56WOM/ Where FCBParam optim is used uninitialized a min_err of 1<<30, allows the struct to be never initilialized as all err (which is int32_t) can be larger than min_err. By increasing min_err above the int32_t range this is no longer possible Untested, as i do not have the testcase Signed-off-by: Michael Niedermayer i (cherry picked from commit 909af3a571da830cc70a34f0c3946379bd12dfbe) Signed-off-by: Michael Niedermayer --- libavcodec/g723_1.h | 2 +- libavcodec/g723_1enc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/g723_1.h b/libavcodec/g723_1.h index 521f220b2a..f3cd32e37d 100644 --- a/libavcodec/g723_1.h +++ b/libavcodec/g723_1.h @@ -108,7 +108,7 @@ typedef struct HFParam { * Optimized fixed codebook excitation parameters */ typedef struct FCBParam { - int min_err; + int64_t min_err; int amp_index; int grid_index; int dirac_train; diff --git a/libavcodec/g723_1enc.c b/libavcodec/g723_1enc.c index ee5b0fe251..4fd4567a87 100644 --- a/libavcodec/g723_1enc.c +++ b/libavcodec/g723_1enc.c @@ -1013,7 +1013,7 @@ static void fcb_search(G723_1_ChannelContext *p, int16_t *impulse_resp, int pulse_cnt = pulses[index]; int i; - optim.min_err = 1 << 30; + optim.min_err = 1LL << 31; get_fcb_param(&optim, impulse_resp, buf, pulse_cnt, SUBFRAME_LEN); if (p->pitch_lag[index >> 1] < SUBFRAME_LEN - 2) {