mirror of
https://abf.rosa.ru/djam/glibc.git
synced 2025-02-23 15:02:47 +00:00
27 lines
871 B
Diff
27 lines
871 B
Diff
![]() |
--- glibc-2.2/nss/nsswitch.c.chmou Fri Mar 31 22:38:32 2000
|
||
|
+++ glibc-2.2/nss/nsswitch.c Wed Nov 22 00:35:53 2000
|
||
|
@@ -333,9 +333,20 @@
|
||
|
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);
|
||
|
+ }
|
||
|
}
|
||
|
}
|
||
|
|