system: fix uninitialized variables in firmware validation code
authorRafał Miłecki <rafal@milecki.pl>
Thu, 5 Sep 2019 21:07:21 +0000 (23:07 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 5 Sep 2019 21:07:21 +0000 (23:07 +0200)
This fixes:
system.c: In function 'validate_firmware_image':
system.c:403:6: error: 'fd' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if (fd >= 0) {
      ^
system.c:446:4: error: 'jsobj' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    blobmsg_add_object(&b, jsobj);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: e990e215e8a3 ("system: add "validate_firmware_image" ubus method")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
system.c

index 94bef1bea6cf5a615a1717e0764f0835ab571b52..ad24a30a6ce68779e27ab386055b5574e50d9634 100644 (file)
--- a/system.c
+++ b/system.c
@@ -386,8 +386,8 @@ static int proc_signal(struct ubus_context *ctx, struct ubus_object *obj,
 static int validate_firmware_image_call(const char *file)
 {
        const char *path = "/usr/libexec/validate_firmware_image";
+       json_object *jsobj = NULL;
        json_tokener *tok;
-       json_object *jsobj;
        char buf[64];
        ssize_t len;
        int fds[2];
@@ -402,6 +402,7 @@ static int validate_firmware_image_call(const char *file)
                return -errno;
        case 0:
                /* Set stdin & stderr to /dev/null */
+               fd = open("/dev/null", O_RDWR);
                if (fd >= 0) {
                        dup2(fd, 0);
                        dup2(fd, 2);