libmemtrack: Fix fd leak in kgsl function

Added code to close fd for error cases in kgsl
function to prevent possible leak in fd.

CRs-Fixed: 2039493
Change-Id: I353423de286bf42c22b4726b519690d70303574f
diff --git a/libmemtrack/kgsl.c b/libmemtrack/kgsl.c
index 3f36b8d..69ee901 100644
--- a/libmemtrack/kgsl.c
+++ b/libmemtrack/kgsl.c
@@ -93,31 +93,41 @@
             continue;
         }
 
-        if (size == 0)
+        if (size == 0) {
+            fclose(fp);
             return -EINVAL;
+        }
 
-        if (unaccounted_size + size < size)
+        if (unaccounted_size + size < size) {
+            fclose(fp);
             return -ERANGE;
+        }
 
         if (type == MEMTRACK_TYPE_GL && strcmp(line_type, "gpumem") == 0) {
 
             if (flags[6] == 'Y') {
-                if (accounted_size + mapsize < accounted_size)
+                if (accounted_size + mapsize < accounted_size) {
+                    fclose(fp);
                     return -ERANGE;
+                }
 
                 accounted_size += mapsize;
 
-                if (mapsize > size)
+                if (mapsize > size) {
+                    fclose(fp);
                     return -EINVAL;
-
+                }
                 unaccounted_size += size - mapsize;
-            } else
+            } else {
                 unaccounted_size += size;
+            }
         } else if (type == MEMTRACK_TYPE_GRAPHICS && strcmp(line_type, "ion") == 0) {
-            if (strcmp(line_usage, "egl_surface") == 0)
+            if (strcmp(line_usage, "egl_surface") == 0) {
                 unaccounted_size += size;
-            else if (egl_surface_count == 0)
+            }
+            else if (egl_surface_count == 0) {
                 unaccounted_size += size / (egl_image_count ? egl_image_count : 1);
+            }
         }
     }