avfilter/vf_gblur: fix undefined behaviour

Fixes #8292
This commit is contained in:
Paul B Mahol 2019-10-16 19:21:00 +02:00
parent c70d547751
commit 1e35519fe0
1 changed files with 4 additions and 1 deletions

View File

@ -157,6 +157,7 @@ static int filter_postscale(AVFilterContext *ctx, void *arg, int jobnr, int nb_j
{
GBlurContext *s = ctx->priv;
ThreadData *td = arg;
const float max = (1 << s->depth) - 1;
const int height = td->height;
const int width = td->width;
const int64_t numpixels = width * (int64_t)height;
@ -166,8 +167,10 @@ static int filter_postscale(AVFilterContext *ctx, void *arg, int jobnr, int nb_j
float *buffer = s->buffer;
unsigned i;
for (i = slice_start; i < slice_end; i++)
for (i = slice_start; i < slice_end; i++) {
buffer[i] *= postscale;
buffer[i] = av_clipf(buffer[i], 0.f, max);
}
return 0;
}