From 66c23fa97a1bf8819051f1c358ae5eb38eeefae2 Mon Sep 17 00:00:00 2001 From: huangyu Date: Tue, 6 Sep 2022 11:55:40 +0800 Subject: [PATCH] huawei-fix_nss_database_check_reload_and_get_memleak.patch The return nss_database_check_reload_adn_get (local, actions, db) does not check whether the local value is empty before invoking the local interface. Signed-off-by: huangyu --- nss/nss_database.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nss/nss_database.c b/nss/nss_database.c index 54561f03..a503890a 100644 --- a/nss/nss_database.c +++ b/nss/nss_database.c @@ -254,6 +254,8 @@ __nss_configure_lookup (const char *dbname, const char *service_line) __nss_database_get (db, &result); local = nss_database_state_get (); + if (local == NULL) + return -1; result = __nss_action_parse (service_line); if (result == NULL) @@ -399,6 +401,9 @@ nss_database_check_reload_and_get (struct nss_database_state *local, /* Acquire MO is needed because the thread that sets reload_disabled may have loaded the configuration first, so synchronize with the Release MO store there. */ + if (local == NULL) + return false; + if (atomic_load_acquire (&local->data.reload_disabled)) { *result = local->data.services[database_index]; -- 2.33.0