]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme-cli: json_add_smart_log(): Fix memory leak for JSON.
authorChaitanya Kulkarni <chaitanya.kulkarni@hgst.com>
Fri, 24 Feb 2017 02:39:37 +0000 (18:39 -0800)
committerKeith Busch <keith.busch@intel.com>
Fri, 24 Feb 2017 15:18:56 +0000 (10:18 -0500)
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 <chaitanya.kulkarni@hgst.com>
nvme-print.c

index 3d8b32c2fbdf7be1ae64099a3b4608d4b524674e..b466aeef35ec279a0c66a9841c56f66ab9fafaa6 100644 (file)
@@ -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)