diff options
-rw-r--r-- | libmemtrack/kgsl.c | 5 |
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; |