From 848a95329c867aae726ae990051700c9ef6541fa Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Wed, 31 May 2023 12:19:33 +0200 Subject: [PATCH] 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 --- lib/nss.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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"); -- 2.47.2