From: Alejandro Colomar Date: Wed, 31 May 2023 10:19:33 +0000 (+0200) Subject: lib/nss.c: Fix use of uninitialized p X-Git-Tag: 4.14.0-rc1~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=848a95329c867aae726ae990051700c9ef6541fa;p=thirdparty%2Fshadow.git lib/nss.c: Fix use of uninitialized p getline(3) might have never succeeded, in which case p is uninitialized when used in strtok_r(3). Link: Cc: Serge Hallyn Signed-off-by: Alejandro Colomar --- diff --git a/lib/nss.c b/lib/nss.c index 1aa27f3e5..e6776fb1a 100644 --- a/lib/nss.c +++ b/lib/nss.c @@ -69,7 +69,8 @@ void nss_init(const char *nsswitch_path) { atomic_store(&nss_init_completed, true); return; } - while ((getline(&line, &len, nssfp)) != -1) { + p = NULL; + while (getline(&line, &len, nssfp) != -1) { if (line[0] == '#') continue; if (strlen(line) < 8) @@ -82,6 +83,9 @@ void nss_init(const char *nsswitch_path) { if (*p != '\0') break; } + if (p == NULL) { + goto null_subid; + } token = strtok_r(p, " \n\t", &saveptr); if (token == NULL) { fprintf(shadow_logfd, "No usable subid NSS module found, using files\n");