glibc 2.2 (ldconfig has a bug)
Denis Zaitsev
zzz@cd-club.ru
Tue Nov 14 07:40:00 GMT 2000
Now it's indeed ldconfig... Here is the patch.
--- glibc-2.2/elf/ldconfig.c Tue Nov 14 20:05:26 2000
+++ glibc-2.2/elf/ldconfig.c Tue Nov 14 20:05:02 2000
@@ -370,13 +370,13 @@
/* Get complete path. */
full_libname = alloca (strlen (path) + strlen (libname) + 2);
- full_soname = alloca (strlen (path) + strlen (libname) + 2);
+ full_soname = alloca (strlen (path) + strlen (soname) + 2);
sprintf (full_libname, "%s/%s", path, libname);
sprintf (full_soname, "%s/%s", path, soname);
if (opt_chroot)
{
real_full_libname = alloca (strlen (real_path) + strlen (libname) + 2);
- real_full_soname = alloca (strlen (real_path) + strlen (libname) + 2);
+ real_full_soname = alloca (strlen (real_path) + strlen (soname) + 2);
sprintf (real_full_libname, "%s/%s", real_path, libname);
sprintf (real_full_soname, "%s/%s", real_path, soname);
}
It's merrily. The error was sitting silently until the release... Then
ld-2.1.97.so became ld-2.2.so, its strlen becomes 3 bytes shorter and
finito... For other names (on my system) it is stiil working without
the patch.
More information about the Libc-alpha
mailing list