From: Matthias Räncker Date: Fri, 21 Sep 2018 12:23:44 +0000 (+0200) Subject: internal stats: fix mem leak and initialize memory X-Git-Tag: v1.8.0~299^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e376f1d5d4f1c3c39cb1f06cf17020300eac64ea;p=libvpx internal stats: fix mem leak and initialize memory Without calloc valgrind reports usuage of uninitialized data in vpx_get_ssim_metrics. Signed-off-by: Matthias Räncker Change-Id: I9cd38b8031ea3f22c1436894ddaf9e0ccf5a654e --- diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 7ba08f2d6..c9c5c1e9a 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -2236,9 +2236,11 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf, if (cpi->b_calculate_consistency) { CHECK_MEM_ERROR(cm, cpi->ssim_vars, - vpx_malloc(sizeof(*cpi->ssim_vars) * 4 * - cpi->common.mi_rows * cpi->common.mi_cols)); + vpx_calloc(cpi->common.mi_rows * cpi->common.mi_cols, + sizeof(*cpi->ssim_vars) * 4)); cpi->worst_consistency = 100.0; + } else { + cpi->ssim_vars = NULL; } #endif @@ -2466,6 +2468,10 @@ void vp9_remove_compressor(VP9_COMP *cpi) { if (!cpi) return; +#if CONFIG_INTERNAL_STATS + vpx_free(cpi->ssim_vars); +#endif + cm = &cpi->common; if (cm->current_video_frame > 0) { #if CONFIG_INTERNAL_STATS @@ -2537,7 +2543,6 @@ void vp9_remove_compressor(VP9_COMP *cpi) { fclose(f); } - #endif #if 0