avfilter/vf_ssim360: Use correct type in sizeof
SSIM360Context.ssim360_hist is an array of four pointers to double; so sizeof(*ssim360_hist[0]) (=sizeof(double)) is the correct size to use to calculate the amount of memory to allocate, not sizeof(*ssim360_hist) (which is sizeof(double*)). Use FF_ALLOCZ_TYPED_ARRAY to avoid this issue altogether. Fixes Coverity issue #1520671. Reviewed-by: Anton Khirnov <anton@khirnov.net> Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -1624,7 +1624,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
memset(s->ssim360_percentile_sum, 0, sizeof(s->ssim360_percentile_sum));
|
memset(s->ssim360_percentile_sum, 0, sizeof(s->ssim360_percentile_sum));
|
||||||
|
|
||||||
for (int i = 0; i < s->nb_components; i++) {
|
for (int i = 0; i < s->nb_components; i++) {
|
||||||
s->ssim360_hist[i] = av_calloc(SSIM360_HIST_SIZE, sizeof(*s->ssim360_hist));
|
FF_ALLOCZ_TYPED_ARRAY(s->ssim360_hist[i], SSIM360_HIST_SIZE);
|
||||||
if (!s->ssim360_hist[i])
|
if (!s->ssim360_hist[i])
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user