Patch-ID# 100257-05 Keywords: ld.so, ldd, ldconfig, cache, dlopen, dlclose, descriptors, tty, dlopen Synopsis: SunOS 4.1.1;4.1.2;4.1.3: jumbo patch for ld.so, ldd, and ldconfig Date: Oct/01/93 SunOS release: 4.1.1, 4.1.2, 4.1.3, 4.1.3c Unbundled Product: Unbundled Release: Topic: ld.so, ldd, and ldconfig fixes included here BugId's fixed with this patch: 1033086 1043300 1046379 1052428 1045194 1032208 1032209 1043082 1069404 1070559 1083431 1071781 Architectures for which this patch is available: sun3(all), sun4(all) Patches which may conflict with this patch: Obsoleted by: Problem Description: ld.so 1.66 contains fixes for these bugs: 1033086: Calling dlopen() on a file with BSS kills your application. 1043300: dlclose prevents access to functions even after further dlopen 1046379: cannot call a function in a [.so] from a function in another 1052428: ld.so usage of -L options confusing, leads to security probs 1045194: dlsym returns bad address for uninitialized global variable 1069404: bad handle errors with dlopen(NULL...) 1070559: SPARC ld.so's are not architecture independent 1076903: cascaded dependency checking too restrictive 1083431: dlsym() can fail to find all symbols 1071781: fix "relocate()" to deal with "interpreted" symbols properly. ldd 1.6 contains fixes for these bugs: 1032208: ldd doesn't write file names if standard output is not a tty 1032209: ldd runs out of file descriptors And, ldconfig 1.10 contains fixes for this bug: 1043082: Bogus first arg to 'ldconfig' kills dynamic linking For brevity, and because this patch relates exclusively to ld and its support programs, this patch contains fixes to 3 ld "parts"; ld.so (the dynamic linker), ldd (dynamic dependencies lister), and ldconfig (dynamic path cache tool). Unpacking this one patch will provide binary executables for ld.so, ldd, and ldconfig. The result will be a hierarchy that contains both SPARC and M68K versions of the referenced programs. The installation instructions below will address, seperately, the install sequence for each of the 3 patches. INSTALL: As root install the following patches: For ldd: mv /bin/ldd /bin/ldd.FCS cp -p {4.1.1, 4.1.2, 4.1.3, 4.1.3c}/`arch`/ldd /bin/ldd chmod 755 /bin/ldd For ldconfig: mv /usr/etc/ldconfig /usr/etc/ldconfig.FCS cp -p {4.1.1, 4.1.2, 4.1.3, 4.1.3c}/`arch`/ldconfig /usr/etc chmod 755 /usr/etc/ldconfig For ld.so: cp -p {4.1.1, 4.1.2, 4.1.3, 4.1.3c}/`arch`/ld.so /usr/lib/ld.so+ chmod 555 /usr/lib/ld.so+ mv /usr/lib/ld.so /usr/lib/ld.so-; mv /usr/lib/ld.so+ /usr/lib/ld.so date If the "date" command does not run correctly, then IMMEDIATELY put back the old ld.so: mv /usr/lib/ld.so- /usr/lib/ld.so NEVER "cp" or otherwise copy over an installed ld.so.