From a53f07a8f64664e1f3337ed3abd6e4b1d202bbbe Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 13 Dec 2018 11:30:06 +0100
Subject: [PATCH] mindtct: Fix memory leak in error path in gen_image_maps()

Free the maps if we're not returning them.

libfprint/nbis/mindtct/maps.c:176:14: warning: Potential leak of memory pointed to by 'direction_map'
      return(ret);
             ^~~
libfprint/nbis/mindtct/maps.c:195:14: warning: Potential leak of memory pointed to by 'low_contrast_map'
      return(ret);
             ^~~
libfprint/nbis/mindtct/maps.c:195:14: warning: Potential leak of memory pointed to by 'low_flow_map'
      return(ret);
             ^~~
---
 libfprint/nbis/mindtct/maps.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/libfprint/nbis/mindtct/maps.c b/libfprint/nbis/mindtct/maps.c
index 419517b..532eefa 100644
--- a/libfprint/nbis/mindtct/maps.c
+++ b/libfprint/nbis/mindtct/maps.c
@@ -159,6 +159,9 @@ int gen_image_maps(int **odmap, int **olcmap, int **olfmap, int **ohcmap,
    }
 
    if((ret = morph_TF_map(low_flow_map, mw, mh, lfsparms))){
+      free(direction_map);
+      free(low_contrast_map);
+      free(low_flow_map);
       return(ret);
    }
 
@@ -173,6 +176,9 @@ int gen_image_maps(int **odmap, int **olcmap, int **olfmap, int **ohcmap,
    /* 5. Interpolate INVALID direction blocks with their valid neighbors. */
    if((ret = interpolate_direction_map(direction_map, low_contrast_map,
                                        mw, mh, lfsparms))){
+      free(direction_map);
+      free(low_contrast_map);
+      free(low_flow_map);
       return(ret);
    }
 
@@ -192,6 +198,9 @@ int gen_image_maps(int **odmap, int **olcmap, int **olfmap, int **ohcmap,
    /* 9. Generate High Curvature Map from interpolated Direction Map. */
    if((ret = gen_high_curve_map(&high_curve_map, direction_map, mw, mh,
                                 lfsparms))){
+      free(direction_map);
+      free(low_contrast_map);
+      free(low_flow_map);
       return(ret);
    }