hotplug.c: Make sure hotplug buffer is NULL terminated
authorHauke Mehrtens <hauke@hauke-m.de>
Wed, 19 Dec 2018 09:51:57 +0000 (10:51 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Thu, 27 Dec 2018 12:22:26 +0000 (13:22 +0100)
Sets the final byte explicitly to NULL because we later do string
operations on this buffer.

Fixes Coverity issue 1430926 String not null terminated

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
plug/hotplug.c

index 80e6e4db9e734b708f62d4f41a695486f654188f..799123dcea195b562e7c71dee2197566f0bb6b3c 100644 (file)
@@ -545,11 +545,13 @@ static void hotplug_handler(struct uloop_fd *u, unsigned int ev)
 {
        int i = 0;
        static char buf[4096];
-       int len = recv(u->fd, buf, sizeof(buf), MSG_DONTWAIT);
+       int len = recv(u->fd, buf, sizeof(buf) - 1, MSG_DONTWAIT);
        void *index;
        if (len < 1)
                return;
 
+       buf[len] = '\0';
+
        blob_buf_init(&b, 0);
        index = blobmsg_open_table(&b, NULL);
        while (i < len) {