local-nss-upgrade

# DP: This patch makes future upgrades easier. It resolves problems with
# DP: running daemons having NSS modules upgraded out from under them.
# DP: This patch makes future upgrades easier. It resolves problems with
# DP: running daemons having NSS modules upgraded out from under them.


Gbp-Pq: Topic any
Gbp-Pq: Name local-nss-upgrade.diff
This commit is contained in:
Ubuntu Developers 2022-05-13 23:32:11 +08:00 committed by openKylinBot
parent 2cb76bc457
commit 7cff6eee06
1 changed files with 14 additions and 3 deletions

View File

@ -359,9 +359,20 @@ nss_load_library (service_user *ni)
ni->library->lib_handle = __libc_dlopen (shlib_name);
if (ni->library->lib_handle == NULL)
{
/* Failed to load the library. */
ni->library->lib_handle = (void *) -1l;
__set_errno (saved_errno);
/* Failed to load the library. Try a fallback. */
int n = __snprintf(shlib_name, shlen, "libnss_%s.so.%d.%d",
ni->library->name, __GLIBC__, __GLIBC_MINOR__);
if (n >= shlen)
ni->library->lib_handle = NULL;
else
ni->library->lib_handle = __libc_dlopen (shlib_name);
if (ni->library->lib_handle == NULL)
{
/* Ok, really fail now. */
ni->library->lib_handle = (void *) -1l;
__set_errno (saved_errno);
}
}
# ifdef USE_NSCD
else if (is_nscd)