libubus: fix incompatible pointer types assigment
authorPetr Štetiar <ynezz@true.cz>
Wed, 11 Dec 2019 10:15:02 +0000 (11:15 +0100)
committerPetr Štetiar <ynezz@true.cz>
Mon, 16 Dec 2019 22:39:16 +0000 (23:39 +0100)
Fixes following error reported by clang-9 analyzer:

 libubus.c:286:19: error: incompatible pointer types assigning to 'struct blob_attr *' from 'char *' [-Werror,-Wincompatible-pointer-types]
         ctx->msgbuf.data = (char *) calloc(UBUS_MSG_CHUNK_SIZE, sizeof(char));

Result of 'calloc' is converted to a pointer of type 'struct blob_attr',
which is incompatible with sizeof operand type 'char'.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
libubus.c

index 260e40f..846ae83 100644 (file)
--- a/libubus.c
+++ b/libubus.c
@@ -283,7 +283,7 @@ int ubus_connect_ctx(struct ubus_context *ctx, const char *path)
        ctx->connection_lost = ubus_default_connection_lost;
        ctx->pending_timer.cb = ubus_process_pending_msg;
 
-       ctx->msgbuf.data = calloc(UBUS_MSG_CHUNK_SIZE, sizeof(char));
+       ctx->msgbuf.data = calloc(1, UBUS_MSG_CHUNK_SIZE);
        if (!ctx->msgbuf.data)
                return -1;
        ctx->msgbuf_data_len = UBUS_MSG_CHUNK_SIZE;