diff options
author | Colin Cross <ccross@android.com> | 2013-09-30 13:09:02 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-12-17 18:39:09 -0800 |
commit | 76d10541daa644d2b8bbd1c7f5052dcd61c931ae (patch) | |
tree | 3752e5e47f6b6d36923db69711bea8a537974abb /libmemtrack | |
parent | 56225c143b5ab6d7fdec1faf0dceaf1f89049914 (diff) | |
download | display-76d10541daa644d2b8bbd1c7f5052dcd61c931ae.tar.gz |
fix fd leak in memtrack.msm8960
Close smaps_fd when exiting function.
Bug: 11007903
Change-Id: I4a9fcd1e84aae195d229e5dd11f99ccb9f6f5006
Diffstat (limited to 'libmemtrack')
-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; |