James Almer: > On 4/23/2021 11:18 AM, Andreas Rheinhardt wrote: >> James Almer: >>> Should fix ticket #9196 >>> >>> Signed-off-by: James Almer <jamr...@gmail.com> >>> --- >>> libavfilter/af_adelay.c | 13 +++++++++---- >>> 1 file changed, 9 insertions(+), 4 deletions(-) >>> >>> diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c >>> index 6ac81c2a3e..81ff7947f5 100644 >>> --- a/libavfilter/af_adelay.c >>> +++ b/libavfilter/af_adelay.c >>> @@ -28,9 +28,9 @@ >>> #include "internal.h" >>> typedef struct ChanDelay { >>> - int delay; >>> - unsigned delay_index; >>> - unsigned index; >>> + int64_t delay; >>> + size_t delay_index; >>> + size_t index; >>> uint8_t *samples; >>> } ChanDelay; >>> @@ -152,7 +152,7 @@ static int config_input(AVFilterLink *inlink) >>> p = NULL; >>> - ret = av_sscanf(arg, "%d%c", &d->delay, &type); >>> + ret = av_sscanf(arg, "%"SCNd64"%c", &d->delay, &type); >>> if (ret != 2 || type != 'S') { >>> div = type == 's' ? 1.0 : 1000.0; >>> if (av_sscanf(arg, "%f", &delay) != 1) { >>> @@ -194,6 +194,11 @@ static int config_input(AVFilterLink *inlink) >>> if (!d->delay) >>> continue; >>> + if (d->delay > SIZE_MAX) { >> >> Does this give a new compiler warning on 64bit systems (where this check >> is tautologically false)? > > Not here with GCC 10.2.0 mingw-w64, at least. > With -Wextra it prints a -Wsign-compare warning, but it gets buried in a > dozen other similar warnings. > > Do you prefer if i make the check "d->delay > SIZE_MAX / s->block_align" > instead? >
Of course not. Then the compiler could not optimize the check (and the string) away. >> >>> + av_log(ctx, AV_LOG_ERROR, "Requested delay is too big.\n"); >>> + return AVERROR(EINVAL); >>> + } >>> + >>> d->samples = av_malloc_array(d->delay, s->block_align); >>> if (!d->samples) >>> return AVERROR(ENOMEM); >>> _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".