summaryrefslogtreecommitdiff
path: root/libmemtrack
diff options
context:
space:
mode:
Diffstat (limited to 'libmemtrack')
-rw-r--r--libmemtrack/kgsl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libmemtrack/kgsl.c b/libmemtrack/kgsl.c
index 48437420..6dd4e27a 100644
--- a/libmemtrack/kgsl.c
+++ b/libmemtrack/kgsl.c
@@ -47,7 +47,7 @@ int kgsl_memtrack_get_memory(pid_t pid, enum memtrack_type type,
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 @@ int kgsl_memtrack_get_memory(pid_t pid, enum memtrack_type type,
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 @@ int kgsl_memtrack_get_memory(pid_t pid, enum memtrack_type type,
records[1].size_in_bytes = unaccounted_size;
}
+ if (smaps_fp)
+ fclose(smaps_fp);
fclose(fp);
return 0;