From f47005a44ca63fd882ce24b16ebfba39f81f0ba7 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 27 Jun 2014 19:11:44 +0300 Subject: [PATCH] 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. --- libubus-req.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); -- 2.11.0