Patch-ID# 100257-02 Keywords: ld.so, ldd, ldconfig, cache, dlopen, dlclose, descriptors, tty Synopsis: ld.so;4.1.1: jumbo patch for ld.so, ldd, and ldconfig Date: 17-Apr-91 SunOS release: 4.1.1 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 Architectures for which this patch is available: sun3[x], sun4[c] Patches which may conflict with this patch: Obsoleted by: svr4 Problem Description: 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 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: For ldd: 0) become 'root' 1) mv /bin/ldd /bin/ldd.FCS 2) cp -p sun{3,4}/ldd /bin/ldd 4) For ldconfig: 0) become 'root' 1) mv /usr/etc/ldconfig /usr/etc/ldconfig.FCS 2) cp -p sun{3.4}/ldconfig /usr/etc 4) For ld.so: !!NOTE!!: The correct way to install a new ld.so in a system is as follows: 0) become 'root' 1) cp sun{3.4}/ld.so /usr/lib/ld.so+ 3) cd /usr/lib 4) mv ld.so ld.so-; mv ld.so+ ld.so 5) date If the "date" command does not run correctly, then IMMEDIATELY put back the old ld.so: 6) mv ld.so- ld.so NEVER "cp" or otherwise copy over an installed ld.so.