OBSOLETE Patch-ID# 108828-40 Keywords: security libthread malloc libc libnsl libthread_db libthread Synopsis: Obsoleted by: 108994-18 SunOS 5.8_x86: /usr/lib/libthread.so.1 patch Date: Feb/07/2003 Install Requirements: Install in Single User Mode Reboot immediately after patch is installed See Special Install Instructions Solaris Release: 8_x86 SunOS Release: 5.8_x86 Unbundled Product: Unbundled Release: Xref: This patch available for SPARC as patch 108827 Topic: SunOS 5.8_x86: /usr/lib/libthread.so.1 patch Relevant Architectures: i386 BugId's fixed with this patch: 1167742 1226166 1239168 1257084 1258570 4091466 4160415 4193683 4196528 4221365 4225913 4236427 4244731 4279077 4283726 4285623 4288299 4291844 4292683 4298024 4299191 4300228 4302592 4303962 4304367 4305389 4305859 4307551 4307676 4309140 4310353 4311360 4311948 4312278 4312667 4314913 4318178 4320661 4324788 4324815 4325063 4327396 4332046 4332595 4332614 4334488 4335956 4336332 4336933 4341150 4341290 4343787 4350332 4354007 4355205 4355206 4356567 4357266 4357778 4366956 4367192 4367496 4368163 4371624 4372508 4374039 4374142 4375449 4376585 4380494 4380626 4381908 4384709 4386274 4390345 4390347 4391115 4393363 4393752 4394576 4395379 4396628 4400361 4401864 4402453 4402909 4403938 4404805 4407002 4408502 4411880 4411929 4413203 4413227 4413363 4413411 4419882 4421186 4421485 4422968 4423126 4424606 4424844 4425090 4425392 4428257 4430473 4433015 4433072 4433373 4438470 4441422 4444569 4445697 4445802 4449557 4451547 4452064 4452634 4454327 4455654 4455896 4459797 4464111 4468559 4475044 4478852 4484035 4484522 4485436 4488249 4490889 4490965 4491094 4493323 4496617 4497853 4503048 4506569 4510302 4512099 4515843 4517003 4517584 4523940 4524527 4525671 4525851 4528665 4530367 4545738 4614041 4616609 4617135 4617318 4617356 4629623 4635556 4648085 4656546 4661997 4663077 4669963 4680691 4683311 4690775 4691127 4710928 4727726 4730459 4749274 4767215 Changes incorporated in this version: 4710928 Patches accumulated and obsoleted by this patch: 108992-18 109323-09 109462-03 109681-01 110590-02 111178-06 111218-02 111642-01 111922-02 112023-01 Patches which conflict with this patch: Patches required with this patch: Obsoleted by: 108994-18 Files included with this patch: /etc/default/nss /usr/include/nl_types.h /usr/include/pthread.h /usr/include/rpc/clnt.h /usr/include/rpc/clnt_stat.h /usr/include/rpc/svc.h /usr/include/rpc/trace.h /usr/include/synch.h /usr/include/thread_db.h /usr/lib/abi/abi_libc.so.1 /usr/lib/abi/abi_libnsl.so.1 /usr/lib/abi/abi_watchmalloc.so.1 /usr/lib/libc.a /usr/lib/libc.so.1 /usr/lib/libdoor.so.1 /usr/lib/libnsl.a /usr/lib/libnsl.so /usr/lib/libnsl.so.1 /usr/lib/libp/libc.a /usr/lib/libpthread.so.1 /usr/lib/libthread.so.1 /usr/lib/libthread_db.so.0 /usr/lib/libthread_db.so.1 /usr/lib/llib-lc /usr/lib/llib-lc.ln /usr/lib/llib-ldoor.ln /usr/lib/llib-lnsl /usr/lib/llib-lnsl.ln /usr/lib/llib-lpthread.ln /usr/lib/llib-lthread.ln /usr/lib/lwp/libthread.so.1 /usr/lib/lwp/libthread_db.so.1 /usr/lib/lwp/llib-lthread.ln /usr/lib/lwp/llib-lthread_db.ln /usr/lib/nfs/rquotad /usr/lib/nss_nisplus.so.1 /usr/lib/pics/libc_pic.a /usr/lib/watchmalloc.so.1 /usr/sbin/rpc.nispasswdd /usr/xpg4/lib/abi/abi_libpthread.so.1 /usr/xpg4/lib/abi/abi_libthread.so.1 /usr/xpg4/lib/libpthread.so /usr/xpg4/lib/libpthread.so.1 /usr/xpg4/lib/libthread.so /usr/xpg4/lib/libthread.so.1 /usr/xpg4/lib/llib-lpthread.ln /usr/xpg4/lib/llib-lthread.ln Problem Description: 4710928 rpcbind exits with segv on both cluster node (from 108828-39) 4530367 After retry timeout - nss_search() no longer retries lookups 4749274 MT-Safe functions such as syslog(3C) and wordexp(3C) cannot use fork() (from 108828-38) 4767215 Incorrect output with kP format, losing significant digits. (from 108828-37) 4680691 doctored rpc calls over UDP can bring down machines through rpcbind 4730459 Solaris 8 libthread library causes coredump (from 108828-36) 4669963 Strong security checks in catgets(3C) break setuid application 4727726 NIS+ user unable to change his/her passwd. (from 108828-35) 4311360 updwtmp(3c) creates files with unspecified permissions 4475044 GNU gettext should be supported 4545738 iconv not picking up geniconvtbl conversion binaries 4629623 regression: iconv_open() can return -1 with incorrect errno values (from 108828-34) 1226166 rpcbind does not bind with the correct network interface 4690775 nisplus_ldap_udt: rpcbind got killed and core dump during nisplus server setup 4683311 rquotad is not largefile aware (from 108828-33) 4663077 libthread can deadlock itself on _schedlock (from 108828-32) 4648085 automountd dumps core freeing an illegal address in __svc_dupcache_victim() (from 108828-31) 4691127 Possible type overflow in xdr_array (from 108828-30) 4517003 ypserv spinning after client disconnects 4525671 RPC exit when running out of memory 4616609 libnsl rpcb_clnt.c/add_cache() calls exit() unnecessarily 4617318 More calls to exit() in libnsl (from 108828-29) 4350332 netdir_getbyaddr fails often for IPv6 addresses 4503048 getutxent_frec sends init looping (from 108828-28) 1258570 qsort performs poorly with multiple identical keys 4635556 *atexit* atexit() does not scale. Can cause very slow startup of C++ programs. (from 108828-27) 4525851 DCE 3.1 hangs on Solaris 9 beta while configuring (from 108828-26) 4524527 pstack goes into a loop (from 108828-25) 4661997 buffer overflow in dbm_open (from 108828-24) 4318178 wordexp puts automatic string into environment. 4444569 Purify reports memory leaks in wordexp(3C) 4656546 Purify UMR errors with Solaris 8 02/02 libthread library (from 108828-23) 4380626 strcasecmp and strncasecmp are broken for 8-bit characters 4617356 dcgettext() doesn't properly restore signal masks (from 108828-22) 4517584 bad performance due to serialization in mutex_destroy() (from 108828-21) 4221365 readdir_r() is not POSIX compliant 4523940 more getipnodebyname memory leaks (from 108828-20) 4617135 Status error with ROBUST shm mutexes used with an shm condition-variable 4393752 cond_* calls might cause data corruption when used with ROBUST mutexes (from 108828-19) 4496617 getgrent_r is not consistent between 5.7 and 5.8 4614041 UNIX98: execvp does not use standards-conforming shell (from 108828-18) 4394576 nisgrpadm intermittently fails to update NIS+ group 4484522 Call from HotSpot JavaVM to libthread "T1" thr_suspend hangs calling thread (from 108828-17) 4430473 rpc.nisd: svc_getreqset: No transport handle for fd 291 4484035 vxvm - vxlicense and other commands hang when locale is set. 4506569 catgets() function call doesn't return, hang in extract_format() (from 108828-16) 4510302 UNIX98: *vsu* getpriority returned EINVAL when ESRCH was expected 4528665 Deadlock between clnt_create_timed and fork1 (from 108828-15) 4411880 NIS+ cannot handle file descriptors > 1024 4411929 Inter-record timeout for non-blocking COTS RPC results in early disconnects 4512099 The directory server hangs and returns to normal after applying pstack 4493323 thr_getconcurrency() behaves differently for alt. and default libthread 4491094 thread-specific data memory leak in child of fork1() 4490965 pthread_rwlock_rdlock(): allow multiple read locks with writers waiting 4490889 LIBTHREAD_ERROR_DETECTION race malfunction for USYNC_PROCESS mutexes 4488249 lwp_suspend() livelocks with spin_lock_loop() or continue_fork() (from 108828-14) This patch revision was also generated to accumulate and obsolete the feature changes introduced in feature point patch 111922-02, and to include these additional fixes: 4324788 ands may core dump on literal IPv6 address 4497853 THR_BOUND THR_DETACHED thread can run and exit before thrp_create has finished. 4515843 fix for bugid 4307676 causes recursion between libthread and ld.so.1 (from 108828-13) 4393752 cond_* calls might cause data corruption when used with ROBUST mutexes (from 108828-12) 4433015 libthread & ld.so.1 should not use crt*.o modules provided by compilers (from 108828-11) 4368163 ypserv starts hundreds of ypserv processes all in defunct-status 4300228 threaded process grows tired of receiving signals (from 108828-10) 4376585 libthread is abysmal when many threads are awakened from a cond_wait_cancel (from 108828-09) 4279077 mutex_unlock is not atomic when thread is signaled (from 108828-08) 4335956 msgrcv hangs in multi processor environment due to signal loss. (from 108828-07) 4381908 libthread hangs when both SIGPROF and SIGEMT are arriving 4367192 libthread leaves underlying lwp signal mask with SIGEMT (and SIGPROF) blocked (from 108828-06) 4236427 Sybase Replication Server crashes on Multi-CPU Ultra Platforms (from 108828-05) 4336933 Fix for overflow problem in bug 4145630 is incomplete (from 108828-04) 4311948 non-static recursive mutexes do not get unlocked (from 108828-03) 4091466 RFE (request for enhancement) to force core dump instead of libthread hang (from 108828-02) 4307551 td_sync_get_info() returns incorrect ownership information. (from 108828-01) 4288299 Recursive mutexes are not properly released (from 108992-18) 4419882 large select(3c) timeout (from 108992-17) 4312667 getpriority fails with ESRCH when used on SHR class process. (from 108992-16) 4408502 lfmt(3C) calls ctime() which is MT_Unsafe. 4425090 strange files in /var/adm when using utmp library (utmpname()) (from 108992-15) 4428257 Kernel patch 106541-15 makes application dysfunctional 4459797 catgets sets errno to EBADF for the special message catalog for C locale (from 108992-14) 4396628 UNIX98: catopen() does not set errno when it receives a null or empty string 4386274 check_nlspath_env should avoid using strncmp() 4452064 errno handling of catgets is not correct (from 108992-13) This patch revision was generated to accumulate and obsolete the feature changes introduced in feature point patch 111218-02. (from 108992-12) 1257084 login times out, due to excessive time in group lookup 4357778 PSARC 2000/038 create /etc/default/nss (from 108992-11) 4395379 door_return mishandles arguments after EINTR (from 108992-10) 4341290 memory leak in regcomp (from 108992-09) This patch revision was generated to accumulate and obsolete the feature changes introduced in feature point patch 110590-02 (from 108992-08) 4374039 libc/realpath can still write past end of buffer (from 108992-07) 4302592 TLI library is not fork-safe (from 108992-06) 4366956 NLSPATH gettext introduces problems when used printf format specifier 4375449 dtmail crashes when calling catgets with NULL default message (from 108992-05) 4303962 multi-threaded fork1/execvp can fail because __environ_lock is held in parent (from 108992-04) 4291844 strftime and strptime are MT-Unsafe due to use of tzname[] (from 108992-03) 4310353 msgids, semids, shmids and msgsnap (from 108992-02) 4312278 tasks, projects, extended accounting project (from 108992-01) 4193683 malloc() with very big requested array size works incorrectly 4225913 malloc does not set errno to ENOMEM when not enough memory 4314913 fix for Bug 4042527 leaves part of heap unusable, so frees can not combine. 4292683 /usr/ucb/shutdown core dumps in syslog() (from 110590-02) Patch reved to sync feature gate with patch gate (from 110590-01) 4355205 System V semaphores suffer from false sharing 4355206 System V semaphore timeout mechanism (from 109681-01) 4244731 initgroups() doesn't return all groups when RFE 4005653 (full table scans can overload NIS+ servers) is on NIS+ server (from 111218-02) This patch revision was generated to include an escalated fix. (from 111218-01) 4400361 Need to add support for sendfilev() system call (from 109323-09) 4455896 rpc.nispasswdd failed: RPC: .... NIS+ fatal error: 15 (from 109323-08) 4356567 multiple system daemons loop in clnt_dg_call (from 109323-07) 4283726 fsck hangs in phase 4 in getpwuid() call 4327396 nis_modify_entry(): deadlock in rpc_fd_lock() with MT nis table modification 4354007 : xdrmem_putbytes and xdrmem_putlong emit a syslog error message when the buffer (from 109323-06) 4374142 RPC services using RPC_SVC_MT_AUTO can stop listening (from 109323-05) 4357266 Bad line syntax in /etc/hosts causes host table lookup to abort early (from 109323-04) 4336332 svc_getreqset (t_accept) returns illegal file descriptor in Solaris 7/8 (from 109323-03) 4302592 TLI library is not fork-safe (from 109323-02) 4320661 getipnodebyname hangs on mutex when requesting IPv6 literal (from 109323-01) 4305859 libnsl security bug. (from 111178-06) 4413227 cond_* calls might cause data corruption when used with ROBUST mutexes (from 111178-05) This patch revision was generated to accumulate and obsolete the feature changes introduced in feature point patch 111642-01. (from 111178-04) 4433015 libthread & ld.so.1 should not use crt*.o modules provided by compilers (from 111178-03) 4441422 FP control state lost on thread_create with alt_libthread (from 111178-02) 4421186 prex aborts when using /usr/lib/lwp/libthread.so on Solaris 8 (from 111178-01) 4393363 lwp/libthread_db doesn't work with corefiles (from 109462-03) 4407002 UNIX98: *pthread* wrapper needed in /usr/xpg4/lib 4390345 UNIX98: SCHED_FIFO and SCHED_RR threads fail to enter the real time class 4371624 UNIX98: aio_fsync signal arrives before aio_read signal (from 109462-02) 4336933 Fix for overflow problem in bug 4145630 is incomplete (from 109462-01) 4305389 SIGPROF/SIGEMT erroneously masked for some threads/LWPs (from 111642-01) 4423126 pthread_getspecific()/thr_getspecific() can be made up to 4x faster (from 111922-02) This patch revision was generated to accumulate and obsolete the feature changes introduced in feature point patch 112023-01. (from 111922-01) 1167742 MUTEX_HELD and similar macros don't do a very good test 1239168 Introduce pthread_cond_timedwait_np() which takes a relative timeout arg 4160415 door_return has evil knowledge of libthread internals 4196528 thr_stksegment() returns incorrect stack information 4285623 libthread siglongjmp should not restore SPARC application globals 4298024 32-bit popen(3S) does not set errno when fd > 255 4299191 alternate libthread needs improvement 4304367 performance problem in SIGPROF handling with alternate libthread 4307676 libthreads (alt and default) need consistent handshake with ld.so.1 4309140 libthread should lazyload librt 4324815 need interface to provide information about recursive mutexes etc 4325063 alternate libthread lock statistics must be aware of the dynamic linker 4332046 alternate libthread: thr_create() is not fork1-safe on x86 4332595 system(3S) and popen(3S) should be made thread-safe 4332614 definitions of DEFAULTRWLOCK and SHAREDRWLOCK are incorrect 4334488 libthread should set and clear the PTHREAD_PRIO_INHERIT mutex lock byte 4341150 private memory allocator inconsistency causes SEGVs 4343787 need an infrastructure to enable OS-NET libraries to become fork1-safe 4367496 restore _sigon/_sigoff until alternative is phased in 4372508 Incorrect field being used for T_TEMPBOUND in libthread/common/disp.c 4380494 nanosleep() isn't acting as a cancellation point for deferred cancellation 4384709 error in 4390347 UNIX98: pthread_detach() should not be a cancellation point 4391115 alt libthread library clobbers preemption control state 4393752 cond_* calls might cause data corruption when used with ROBUST mutexes 4401864 PTHREAD_MUTEX_ERRORCHECK should work across process boundaries 4402453 thr_create segfaults in child of fork1 4402909 libthread missing mutex_held(), rw_read_held(), rw_write_held(), and sema_held() 4403938 doors cancellation doesn't work with alternate libthread 4404805 /usr/lib/sparcv9/libthread.so.1 doesn't inline curthread() 4413203 lock primitive data types need to be cleaned up and made consistent 4413363 __free_selector() called with wrong argument if sysi86(SI86DSCR) fails 4413411 implement user-level sleep queues in the alternate libthread 4421485 add setcontext() to the libc/libthread jump table 4422968 Need to set the fp of door server to 0 on Intel 4424606 race between sigprocmask and sigacthandler causes assertion failure 4424844 dueling libthreads result in mutual annihilation 4425392 alternate libthread should provide _libthread_sema_wait() function 4433072 alternate libthread_db: td_thr_get_info() returns empty ti_sigmask 4433373 alt. libthread should optimize the case of mutex_unlock() with no waiters 4438470 T2: primordial threads need to have tid and lid of 1 4445697 T2:calling _thr_main() in the middle of init will seg fault 4445802 thr_slot_get()/thr_slot_set() should be ripped out 4449557 improve the speed of uncontended mutex_lock()/mutex_unlock() 4451547 thr_setmutator() returns spurious EINVAL when marking thread as a non-mutator 4452634 old libthread.so.1 fails to build on 32-bit sparc kernel 4454327 libthread should have an option to defer signals within cond_wait() 4455654 there are many problems with thread suspend/continue 4464111 thread cancelled in pthread_cond_wait() consumes condition signal 4468559 Restore tag names of the lock structs for threaded programs in system headers 4478852 libthread assertion failure in sigaction.c with sigsuspend() (from 112023-01) 4485436 Require support of oneway asynchronous model to RPC library Patch Installation Instructions: -------------------------------- For Solaris 2.0-2.6 releases, refer to the Install.info file and/or the README within the patch for instructions on using the generic 'installpatch' and 'backoutpatch' scripts provided with each patch. For Solaris 7-9 releases, refer to the man pages for instructions on using 'patchadd' and 'patchrm' scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/104945-02 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages. Special Install Instructions: ----------------------------- Reboot the system after patch installation. NOTE 1: To get the complete support for Tasks, Projects and Accounting, one needs to install the following patches: 108529-01 (or newer) kernel update patch 108994-01 (or newer) nss and ldap patch 108990-01 (or newer) /usr/kernel/sys/acctctl and /usr/kernel/sys/exacctsys patch 108996-01 (or newer) /usr/lib/libproc.so.1 patch 109026-01 (or newer) /usr/bin/i86/truss patch 109004-01 (or newer) /etc/init.d/acctadm and /usr/sbin/acctadm patch 109010-01 (or newer) /etc/magic and /usr/bin/file patch 109020-01 (or newer) /usr/bin/priocntl patch 109028-01 (or newer) /usr/bin/wracct patch 108998-01 (or newer) libexacct and libproject patch 109008-01 (or newer) at/atrm/batch/cron patch 109012-01 (or newer) /usr/bin/id and /usr/xpg4/bin/id patch 109014-01 (or newer) /usr/bin/lastcomm patch 109016-01 (or newer) /usr/bin/newtask patch 109000-01 (or newer) PAM patch 109022-01 (or newer) /usr/bin/projects patch 109024-01 (or newer) /usr/bin/i86/ps patch 109006-01 (or newer) /sbin/su.static and /usr/bin/su patch 109036-01 (or newer) useradd/userdel/usermod patch 109030-01 (or newer) perl patch 109018-01 (or newer) /usr/bin/pgrep and /usr/bin/pkill patch 109034-01 (or newer) /usr/bin/i86/prstat patch 109038-01 (or newer) /var/yp/Makefile and /var/yp/nicknames patch 109032-01 (or newer) projadd/projdel/projmod patch NOTE 2: To get the complete fix for 4310353 (msgids, semids, shmids and msgsnap -- provide all of the System 5 message queue identifiers in the system), one needs to install the following patches: 109237-01 (or newer) msgsys, semsys and shmsys patch 109239-01 (or newer) /usr/bin/i86/ipcs patch NOTE 3: To get the complete fix for 4355205 System V semaphores suffer from false sharing 4355206 System V semaphore timeout mechanism one needs to install the following patches: 108529-07 (or newer) kernel update patch 109026-02 (or newer) /usr/bin/i86/truss patch NOTE 4: To get the complete NCAfs, NCA Proxy and sendfilev() feature, please install the following patches: 108529-09 (or newer) kernel update patch 109473-06 (or newer) /kernel/drv/tcp patch 109235-04 (or newer) NCA patch 108996-02 (or newer) /usr/lib/libproc.so.1 patch 111296-01 (or newer) /usr/bin/i86/pstack patch 109026-04 (or newer) /usr/bin/i86/truss patch 111298-01 (or newer) /usr/lib/libsendfile.so.1 patch NOTE 5: To get the complete T2 Modifications to alternate Libthread in Solaris 8 feature, please install the following patches: 109026-05 (or newer) truss patch 108996-03 (or newer) libproc patch 109046-03 (or newer) crash patch 108529-12 (or newer) KU patch NOTE 6: To get the complete Sun RPC Library feature, please install the following patches: 112166-01 (or newer) rpcgen patch NOTE 7: To get the complete fix of: 4411880 NIS+ cannot handle file descriptors > 1024 4411929 Inter-record timeout for non-blocking COTS RPC results in early disconnects one also needs to install the usr/sbin/rpc.nisd patch, 110512-03 (or newer). NOTE 8: To get the complete fix for 4394576, please install the following patches: 108828-18 (or newer) /usr/lib/libthread.so.1 patch 110512-04 (or newer) rpc.nisd patch (includes bugid 4471041) NOTE 9: When responding to the question: Do you wish to continue this installation {yes or no} [yes]? (by default, installation will continue in 60 seconds) A 'kill ' is shown when the default behavior is specified (e.g. yes). This is harmless. NOTE 10: The fix for 4614041 involves a dependency on /usr/xpg4/bin/sh which is delivered in the optional package SUNWxcu4. To ensure that libc functions correctly, this package is automatically installed on the user's system if it does not exist. The stream formatted base FCS SUNWxcu4 package included with this patch is "SUNWxcu4.stream.pkg". NOTE 11: To get the complete fix for bugid 4691127, please install the following patch: 108902-05 (or newer) rpcmod patch NOTE 12: To get the complete fix for bugids 4475044, 4335175 and 4340959 please install the following patch: 113416-01 (or newer) GNU gettext patch ------------------------------------------------------------------------------- VERITAS Volume Manager (VxVM) commands may break after installing patch 108827-15 or above. - After installation of 108827-15 or above, a subset of VxVM commands may produce error messages which contain the text "referenced symbol not found". For example: # vxlicense -c ld.so.1: vxlicense: fatal: relocation error: file /etc/vx/slib/libnsl.so.1: symbol _libc_register_forkhandler: referenced symbol not found Killed The workaround is to add "usr/lib" to environment variable LD_LIBRARY_PATH before running the VERITAS commands. The full workaround is documented in SunAlert document 42797. VERITAS has committed to fix this problem in the next VxVM 3.1.1 and 3.2 patch releases. README -- Last modified date: Friday, April 4, 2003