diff --git a/plugins/bcli.c b/plugins/bcli.c index bc681697c..4411a7716 100644 --- a/plugins/bcli.c +++ b/plugins/bcli.c @@ -179,9 +179,9 @@ static char *args_string(const tal_t *ctx, const char **args) return ret; } -static char *bcli_args(struct bitcoin_cli *bcli) +static char *bcli_args(const tal_t *ctx, struct bitcoin_cli *bcli) { - return args_string(bcli, bcli->args); + return args_string(ctx, bcli->args); } /* Only set as destructor once bcli is in current. */ @@ -216,7 +216,7 @@ static void bcli_failure(struct bitcoin_cli *bcli, "we have been retrying command for " "--bitcoin-retry-timeout=%"PRIu64" seconds; " "bitcoind setup or our --bitcoin-* configs broken?", - bcli_args(bcli), + bcli_args(tmpctx, bcli), exitstatus, bitcoind->error_count, (int)bcli->output_bytes, @@ -224,7 +224,7 @@ static void bcli_failure(struct bitcoin_cli *bcli, bitcoind->retry_timeout); plugin_log(bcli->cmd->plugin, LOG_UNUSUAL, "%s exited with status %u", - bcli_args(bcli), exitstatus); + bcli_args(tmpctx, bcli), exitstatus); bitcoind->error_count++; /* Retry in 1 second */ @@ -242,19 +242,19 @@ static void bcli_finished(struct io_conn *conn UNUSED, struct bitcoin_cli *bcli) if (msec > 10000) plugin_log(bcli->cmd->plugin, LOG_UNUSUAL, "bitcoin-cli: finished %s (%"PRIu64" ms)", - bcli_args(bcli), msec); + bcli_args(tmpctx, bcli), msec); assert(bitcoind->num_requests[prio] > 0); /* FIXME: If we waited for SIGCHILD, this could never hang! */ while ((ret = waitpid(bcli->pid, &status, 0)) < 0 && errno == EINTR); if (ret != bcli->pid) - plugin_err(bcli->cmd->plugin, "%s %s", bcli_args(bcli), + plugin_err(bcli->cmd->plugin, "%s %s", bcli_args(tmpctx, bcli), ret == 0 ? "not exited?" : strerror(errno)); if (!WIFEXITED(status)) plugin_err(bcli->cmd->plugin, "%s died with signal %i", - bcli_args(bcli), + bcli_args(tmpctx, bcli), WTERMSIG(status)); /* Implicit nonzero_exit_ok == false */ @@ -380,7 +380,7 @@ static struct command_result *command_err_bcli_badjson(struct bitcoin_cli *bcli, const char *errmsg) { char *err = tal_fmt(bcli, "%s: bad JSON: %s (%.*s)", - bcli_args(bcli), errmsg, + bcli_args(tmpctx, bcli), errmsg, (int)bcli->output_bytes, bcli->output); return command_done_err(bcli->cmd, BCLI_ERROR, err, NULL); } @@ -537,7 +537,7 @@ static struct command_result *process_sendrawtransaction(struct bitcoin_cli *bcl if (bcli->exitstatus) plugin_log(bcli->cmd->plugin, LOG_DBG, "sendrawtx exit %i (%s) %.*s", - *bcli->exitstatus, bcli_args(bcli), + *bcli->exitstatus, bcli_args(tmpctx, bcli), *bcli->exitstatus ? (u32)bcli->output_bytes-1 : 0, bcli->output);