From 4b1bd2ab9318f680a355913987a0ba514cbcd0c9 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 13 Feb 2026 09:02:07 +0100 Subject: [PATCH] nss: Missing checks in __nss_configure_lookup, __nss_database_get (bug 28940) This avoids a null pointer dereference in the nss_database_check_reload_and_get function, and assertion failures. Reviewed-by: Sam James --- nss/nss_database.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nss/nss_database.c b/nss/nss_database.c index efe77aeaff..cd7c9f00ec 100644 --- a/nss/nss_database.c +++ b/nss/nss_database.c @@ -251,9 +251,12 @@ __nss_configure_lookup (const char *dbname, const char *service_line) /* Force any load/cache/read whatever to happen, so we can override it. */ - __nss_database_get (db, &result); + if (!__nss_database_get (db, &result)) + return -1; local = nss_database_state_get (); + if (local == NULL) + return -1; result = __nss_action_parse (service_line); if (result == NULL) @@ -478,6 +481,8 @@ bool __nss_database_get (enum nss_database db, nss_action_list *actions) { struct nss_database_state *local = nss_database_state_get (); + if (local == NULL) + return false; return nss_database_check_reload_and_get (local, actions, db); } libc_hidden_def (__nss_database_get) -- 2.53.0