ref: e376f1d5d4f1c3c39cb1f06cf17020300eac64ea
parent: e65f9e8bcef72711133b1ef7109856c9de05e8d1
author: Matthias Räncker <[email protected]>
date: Fri Sep 21 10:23:44 EDT 2018
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 <[email protected]> Change-Id: I9cd38b8031ea3f22c1436894ddaf9e0ccf5a654e
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2236,9 +2236,11 @@
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 @@
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 @@
fclose(f);
}
-
#endif
#if 0