mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 07:04:22 +01:00
plugins/pay: fix leak on failed new payments.
Start with attaching the payment to cmd (in case of failure), then steal onto the plugin itself. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -113,7 +113,6 @@ static struct command_result *json_keysend(struct command *cmd, const char *buf,
|
||||
#if DEVELOPER
|
||||
bool *use_shadow;
|
||||
#endif
|
||||
p = payment_new(NULL, cmd, NULL /* No parent */, pay_mods);
|
||||
if (!param(cmd, buf, params,
|
||||
p_req("destination", param_node_id, &destination),
|
||||
p_req("msatoshi", param_msat, &msat),
|
||||
@@ -130,6 +129,7 @@ static struct command_result *json_keysend(struct command *cmd, const char *buf,
|
||||
NULL))
|
||||
return command_param_failed();
|
||||
|
||||
p = payment_new(cmd, cmd, NULL /* No parent */, pay_mods);
|
||||
p->local_id = &my_id;
|
||||
p->json_buffer = tal_steal(p, buf);
|
||||
p->json_toks = params;
|
||||
@@ -159,6 +159,8 @@ static struct command_result *json_keysend(struct command *cmd, const char *buf,
|
||||
#endif
|
||||
p->label = tal_steal(p, label);
|
||||
payment_start(p);
|
||||
/* We're keeping this around now */
|
||||
tal_steal(cmd->plugin, p);
|
||||
return command_still_pending(cmd);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user