From ec8aab7cb2b3172841126be521aa525ca47ab4bc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 2 Feb 2023 12:19:17 +1030 Subject: [PATCH] libplugin-pay: fix (transitory) memleak which memleak detection complains about. We assign this in the loop without freeing it first. ``` plugin-pay: MEMLEAK: 0x55792b155e18 plugin-pay: label=plugins/libplugin-pay.c:3274:struct short_channel_id_dir plugin-pay: backtrace: plugin-pay: ccan/ccan/tal/tal.c:442 (tal_alloc_) plugin-pay: plugins/libplugin-pay.c:3274 (direct_pay_listpeerchannels) plugin-pay: plugins/libplugin.c:860 (handle_rpc_reply) plugin-pay: plugins/libplugin.c:1036 (rpc_read_response_one) plugin-pay: plugins/libplugin.c:1060 (rpc_conn_read_response) plugin-pay: ccan/ccan/io/io.c:59 (next_plan) plugin-pay: ccan/ccan/io/io.c:407 (do_plan) plugin-pay: ccan/ccan/io/io.c:417 (io_ready) plugin-pay: ccan/ccan/io/poll.c:453 (io_loop) plugin-pay: plugins/libplugin.c:1893 (plugin_main) plugin-pay: plugins/pay.c:1294 (main) plugin-pay: ../sysdeps/nptl/libc_start_call_main.h:58 (__libc_start_call_main) plugin-pay: ../csu/libc-start.c:381 (__libc_start_main_impl) plugin-pay: parents: plugin-pay: plugins/libplugin-pay.c:3308:struct direct_pay_data plugin-pay: plugins/libplugin.c:1775:struct plugin ``` Signed-off-by: Rusty Russell --- plugins/libplugin-pay.c | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/libplugin-pay.c b/plugins/libplugin-pay.c index 503c91474..05ed22be1 100644 --- a/plugins/libplugin-pay.c +++ b/plugins/libplugin-pay.c @@ -3270,6 +3270,7 @@ static struct command_result *direct_pay_listpeerchannels(struct command *cmd, /* Must have either a local alias for zeroconf * channels or a final scid. */ assert(chan->alias[LOCAL] || chan->scid); + tal_free(d->chan); d->chan = tal(d, struct short_channel_id_dir); if (chan->scid) { d->chan->scid = *chan->scid;