From: Sami Kerola Date: Sat, 29 Feb 2020 08:51:53 +0000 (+0000) Subject: libuuid: ensure variable is initialized [cppcheck] X-Git-Tag: v2.36-rc1~160^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c92864ecd755286b8a743d8ac3388e67ae8598c;p=thirdparty%2Futil-linux.git libuuid: ensure variable is initialized [cppcheck] 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 --- diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c index 27c135db59..69f9591a46 100644 --- a/libuuid/src/gen_uuid.c +++ b/libuuid/src/gen_uuid.c @@ -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);