exec: always call finish_cb to allow plugin to free up memory

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
[fix whitespace, subject typo]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Yousong Zhou 2019-10-21 06:10:28 +00:00 committed by Jo-Philipp Wich
parent ca3e2d5e70
commit 32fba361d5

12
exec.c
View file

@ -131,14 +131,14 @@ rpc_exec_reply(struct rpc_exec_context *c, int rv)
rpc_ustream_to_blobmsg(&c->blob, &c->opipe.stream, "stdout"); rpc_ustream_to_blobmsg(&c->blob, &c->opipe.stream, "stdout");
rpc_ustream_to_blobmsg(&c->blob, &c->epipe.stream, "stderr"); rpc_ustream_to_blobmsg(&c->blob, &c->epipe.stream, "stderr");
} }
if (c->finish_cb)
rv = c->finish_cb(&c->blob, c->stat, c->priv);
if (rv == UBUS_STATUS_OK)
ubus_send_reply(c->context, &c->request, c->blob.head);
} }
if (c->finish_cb)
rv = c->finish_cb(&c->blob, c->stat, c->priv);
if (rv == UBUS_STATUS_OK)
ubus_send_reply(c->context, &c->request, c->blob.head);
ubus_complete_deferred_request(c->context, &c->request, rv); ubus_complete_deferred_request(c->context, &c->request, rv);
blob_buf_free(&c->blob); blob_buf_free(&c->blob);