fix fd leak in memtrack.msm8960
Close smaps_fd when exiting function.
Bug: 11007903
Change-Id: I4a9fcd1e84aae195d229e5dd11f99ccb9f6f5006
diff --git a/libmemtrack/kgsl.c b/libmemtrack/kgsl.c
index 4843742..6dd4e27 100644
--- a/libmemtrack/kgsl.c
+++ b/libmemtrack/kgsl.c
@@ -47,7 +47,7 @@
size_t allocated_records = min(*num_records, ARRAY_SIZE(record_templates));
int i;
FILE *fp;
- FILE *smaps_fp;
+ FILE *smaps_fp = NULL;
char line[1024];
char tmp[128];
size_t accounted_size = 0;
@@ -74,6 +74,7 @@
snprintf(tmp, sizeof(tmp), "/proc/%d/smaps", pid);
smaps_fp = fopen(tmp, "r");
if (smaps_fp == NULL) {
+ fclose(fp);
return -errno;
}
}
@@ -145,6 +146,8 @@
records[1].size_in_bytes = unaccounted_size;
}
+ if (smaps_fp)
+ fclose(smaps_fp);
fclose(fp);
return 0;