]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libuuid: ensure variable is initialized [cppcheck]
authorSami Kerola <kerolasa@iki.fi>
Sat, 29 Feb 2020 08:51:53 +0000 (08:51 +0000)
committerSami Kerola <kerolasa@iki.fi>
Sun, 29 Mar 2020 19:19:11 +0000 (20:19 +0100)
This fix has a little bit of a feel of making a static analyzer to be happy
instead of real progress.  If I read the preprocessor directives correctly
it should be impossible hit uninitialized variable.  Then again if a bug
creeps into these ifdef's in that case it is nice to have robust code that
doesn't immediately go wrong.

    libuuid/src/gen_uuid.c:200:20: error: Uninitialized variable: a [uninitvar]
       memcpy(node_id, a, 6);
                       ^
    libuuid/src/gen_uuid.c:197:8: error: Uninitialized variable: a [uninitvar]
      if (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
           ^

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
libuuid/src/gen_uuid.c

index 27c135db5936baeb0f28d4e7ee80d00ed50dbe84..69f9591a46d7a54ae204e64c741f1f35f260fb97 100644 (file)
@@ -136,7 +136,7 @@ static int get_node_id(unsigned char *node_id)
        struct ifconf   ifc;
        char buf[1024];
        int             n, i;
-       unsigned char   *a;
+       unsigned char   *a = NULL;
 #ifdef HAVE_NET_IF_DL_H
        struct sockaddr_dl *sdlp;
 #endif
@@ -194,7 +194,7 @@ static int get_node_id(unsigned char *node_id)
 #endif /* HAVE_NET_IF_DL_H */
 #endif /* SIOCGENADDR */
 #endif /* SIOCGIFHWADDR */
-               if (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
+               if (a == NULL || (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5]))
                        continue;
                if (node_id) {
                        memcpy(node_id, a, 6);