From: Alexandru Ardelean Date: Fri, 27 Jun 2014 16:11:44 +0000 (+0300) Subject: libubus: fix ubus_invoke() to return err in case ubus_start_request() fails X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=commitdiff_plain;h=f47005a44ca63fd882ce24b16ebfba39f81f0ba7 libubus: fix ubus_invoke() to return err in case ubus_start_request() fails Seems the UBUS_MAX_MSGLEN is ignored by ubus_invoke(), and then segfault happens. This issue is present before this set of patches. --- diff --git a/libubus-req.c b/libubus-req.c index f24f033..8475dc9 100644 --- a/libubus-req.c +++ b/libubus-req.c @@ -224,8 +224,12 @@ int ubus_invoke(struct ubus_context *ctx, uint32_t obj, const char *method, int timeout) { struct ubus_request req; + int rc; + + rc = ubus_invoke_async(ctx, obj, method, msg, &req); + if (rc) + return rc; - ubus_invoke_async(ctx, obj, method, msg, &req); req.data_cb = cb; req.priv = priv; return ubus_complete_request(ctx, &req, timeout);