[FFmpeg-devel] [PATCH 3/5] af_hdcd: fix possible integer overflow
Burt P.
pburt0 at gmail.com
Wed Sep 7 19:03:17 EEST 2016
applied
with fix:
uint64_t sustain_reset = (uint64_t)cdt_ms * rate / 1000;
Thank you, Michael.
--
Burt
On Tue, Sep 6, 2016 at 5:00 PM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> On Mon, Sep 05, 2016 at 06:18:43AM -0500, Burt P wrote:
>> Signed-off-by: Burt P <pburt0 at gmail.com>
>> ---
>> libavfilter/af_hdcd.c | 9 ++++-----
>> 1 file changed, 4 insertions(+), 5 deletions(-)
>>
>> diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
>> index c8bda82..c249589 100644
>> --- a/libavfilter/af_hdcd.c
>> +++ b/libavfilter/af_hdcd.c
>> @@ -1004,16 +1004,15 @@ AVFILTER_DEFINE_CLASS(hdcd);
>> static void hdcd_reset(hdcd_state *state, unsigned rate, unsigned cdt_ms)
>> {
>> int i;
>> + uint64_t sustain_reset = cdt_ms * rate / 1000;
>
> this can still overflow
> cdt_ms and rate are 32bit their product is 32bit divided by 1000
> its around 22 bit, the 64bit is too late
>
>
>>
>> state->window = 0;
>> state->readahead = 32;
>> state->arg = 0;
>> state->control = 0;
>> -
>> state->running_gain = 0;
>> -
>> + state->sustain_reset = sustain_reset;
>> state->sustain = 0;
>> - state->sustain_reset = cdt_ms*rate/1000;
>
> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> The worst form of inequality is to try to make unequal things equal.
> -- Aristotle
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
--
Burt
More information about the ffmpeg-devel
mailing list