summaryrefslogtreecommitdiffstats
path: root/sys-utils/lsmem.c
diff options
context:
space:
mode:
authorKarel Zak2018-02-20 15:04:51 +0100
committerKarel Zak2018-02-20 15:04:51 +0100
commit8e7a0c1622ff4a2afc2bbf835b135a46d111b514 (patch)
tree7d50a189e9b5b98cc19d4c5b5caada9f8f528b1a /sys-utils/lsmem.c
parentlsns: remove if-after-xcalloc (diff)
downloadkernel-qcow2-util-linux-8e7a0c1622ff4a2afc2bbf835b135a46d111b514.tar.gz
kernel-qcow2-util-linux-8e7a0c1622ff4a2afc2bbf835b135a46d111b514.tar.xz
kernel-qcow2-util-linux-8e7a0c1622ff4a2afc2bbf835b135a46d111b514.zip
lsmem: fix memory leak [coverity scan]
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/lsmem.c')
-rw-r--r--sys-utils/lsmem.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys-utils/lsmem.c b/sys-utils/lsmem.c
index 19a727465..3e06e43be 100644
--- a/sys-utils/lsmem.c
+++ b/sys-utils/lsmem.c
@@ -323,12 +323,19 @@ static void print_summary(struct lsmem *lsmem)
printf("%-23s %15"PRId64"\n",_("Total online memory:"), lsmem->mem_online);
printf("%-23s %15"PRId64"\n",_("Total offline memory:"), lsmem->mem_offline);
} else {
- printf("%-23s %5s\n",_("Memory block size:"),
- size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->block_size));
- printf("%-23s %5s\n",_("Total online memory:"),
- size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->mem_online));
- printf("%-23s %5s\n",_("Total offline memory:"),
- size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->mem_offline));
+ char *p;
+
+ if ((p = size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->block_size)))
+ printf("%-23s %5s\n",_("Memory block size:"), p);
+ free(p);
+
+ if ((p = size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->mem_online)))
+ printf("%-23s %5s\n",_("Total online memory:"), p);
+ free(p);
+
+ if ((p = size_to_human_string(SIZE_SUFFIX_1LETTER, lsmem->mem_offline)))
+ printf("%-23s %5s\n",_("Total offline memory:"), p);
+ free(p);
}
}