From ef541afd8a64252c0c8c2acba9d3c4eeb02b1b7e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 14 Jun 2019 13:20:07 +0930 Subject: [PATCH] lightningd: free strmap of commands on shutdown. Indirect leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7f4c84ce4448 in malloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10c448) #1 0x55d11b77d270 in strmap_add_ ccan/ccan/strmap/strmap.c:90 #2 0x55d11b704603 in command_set_usage lightningd/jsonrpc.c:891 #3 0x55d11b733cb5 in param common/param.c:295 #4 0x55d11b6f7b37 in json_connect lightningd/connect_control.c:96 #5 0x55d11b7042ef in setup_command_usage lightningd/jsonrpc.c:841 #6 0x55d11b70443b in jsonrpc_command_add_perm lightningd/jsonrpc.c:863 #7 0x55d11b704533 in jsonrpc_setup lightningd/jsonrpc.c:876 #8 0x55d11b705695 in new_lightningd lightningd/lightningd.c:210 #9 0x55d11b706062 in main lightningd/lightningd.c:644 #10 0x7f4c84696b6a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x26b6a) Signed-off-by: Rusty Russell --- lightningd/jsonrpc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lightningd/jsonrpc.c b/lightningd/jsonrpc.c index 5d81e3f7ff7c..44cf375a383e 100644 --- a/lightningd/jsonrpc.c +++ b/lightningd/jsonrpc.c @@ -876,6 +876,11 @@ static bool jsonrpc_command_add_perm(struct lightningd *ld, return true; } +static void destroy_jsonrpc(struct jsonrpc *jsonrpc) +{ + strmap_clear(&jsonrpc->usagemap); +} + void jsonrpc_setup(struct lightningd *ld) { struct json_command **commands = get_cmdlist(); @@ -890,6 +895,7 @@ void jsonrpc_setup(struct lightningd *ld) commands[i]->name); } ld->jsonrpc->rpc_listener = NULL; + tal_add_destructor(ld->jsonrpc, destroy_jsonrpc); } bool command_usage_only(const struct command *cmd)