From: Chaitanya Kulkarni Date: Fri, 24 Feb 2017 02:39:37 +0000 (-0800) Subject: nvme-cli: json_add_smart_log(): Fix memory leak for JSON. X-Git-Tag: v1.2~17 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=dae6709dc4383f1539e34b05e1c4eb88a051f1a7;p=users%2Fsagi%2Fnvme-cli.git nvme-cli: json_add_smart_log(): Fix memory leak for JSON. This patch fixes the following memory leak for json_add_smart_log() when used by the external function:- ==8637== HEAP SUMMARY: ==8637== in use at exit: 1,807 bytes in 56 blocks ==8637== total heap usage: 101 allocs, 45 frees, 6,577 bytes allocated ==8637== ==8637== LEAK SUMMARY: ==8637== definitely lost: 24 bytes in 1 blocks ==8637== indirectly lost: 1,783 bytes in 55 blocks ==8637== possibly lost: 0 bytes in 0 blocks ==8637== still reachable: 0 bytes in 0 blocks ==8637== suppressed: 0 bytes in 0 blocks Fix:- ==8667== HEAP SUMMARY: ==8667== in use at exit: 0 bytes in 0 blocks ==8667== total heap usage: 101 allocs, 152 frees, 6,577 bytes allocated ==8667== Signed-off-by: Chaitanya Kulkarni --- diff --git a/nvme-print.c b/nvme-print.c index 3d8b32c2..b466aeef 100644 --- a/nvme-print.c +++ b/nvme-print.c @@ -1500,6 +1500,8 @@ void json_add_smart_log(struct nvme_additional_smart_log *smart, snprintf(fmt, sizeof(fmt), "Additional Smart Log for %s", devname); json_object_add_value_object(root, fmt, data); json_print_object(root, NULL); + json_free_object(data); + json_free_object(root); } void json_smart_log(struct nvme_smart_log *smart, unsigned int nsid, const char *devname)