File nss-missing-checks.patch of Package glibc.42803

From 72ebd8b6f697daa3d671cf3309b128f5b65810c7 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
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 <sam@gentoo.org>
---
 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 128b73afeb..76fafeeab1 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

openSUSE Build Service is sponsored by