Patch-ID# 103613-43
Keywords: security y2000 libc su getdate NIS+ libnsl nis_cachemgr rpc.nisd NIS+
Synopsis: SunOS 5.5.1_x86: libc, libnsl, libucb, nis_cachemgr and rpc.nisd patch
Date: Jul/14/98

Solaris Release: 2.5.1_x86

SunOS Release: 5.5.1_x86

Unbundled Product: 

Unbundled Release: 

Xref: This patch available for SPARC as patch 103612
Xref: This patch available for PPC as patch 103614

Topic: SunOS 5.5.1_x86: libc, libnsl, libucb, nis_cachemgr and rpc.nisd patch

	NOTE:  Refer to Special Install Instructions section for 
               IMPORTANT specific information on this patch.

BugId's fixed with this patch: 1159865 1168376 1189481 1206421 1212974 1213016 1219671 1221809 1223323 1223326 1225430 1230570 1232758 1234630 1235867 1242395 1243441 1244872 1244917 1245451 1246630 1246864 1247052 1248090 1249373 1249903 1255623 1258916 1259200 1262462 1262666 1264708 1265785 4005483 4006674 4011495 4011948 4016724 4018801 4018883 4018887 4022240 4022299 4022682 4025665 4026833 4029971 4030045 4035403 4040423 4045229 4045268 4050818 4052565 4055257 4057606 4060465 4062999 4067374 4075462 4080264 4085394 4098943 4105997 4118037 4127727 4128660 4135388 4139126 

Changes incorporated in this version: 4139126

Relevant Architectures: i386

Patches accumulated and obsoleted by this patch: 103616-04 103655-01 

Patches which conflict with this patch: iss_x86-01 (or newer)

Patches required with this patch: 

Obsoleted by: 

Files included with this patch:

/usr/bin/nismkdir
/usr/bin/nistest
/usr/lib/fn/fn_ctx_onc_fn_nisplus_root.so.1
/usr/lib/libc.a
/usr/lib/libc.so.1
/usr/lib/libp/libc.a
/usr/lib/libnsl.a
/usr/lib/libnsl.so.1
/usr/lib/nis/nisclient
/usr/lib/nis/nisupdkeys
/usr/lib/pics/libc_pic.a
/usr/sbin/nis_cachemgr
/usr/sbin/nisinit
/usr/sbin/rpc.nisd
/usr/sbin/static/rcp
/usr/ucblib/libucb.a
/usr/ucblib/libucb.so.1

Problem Description:

4139126 libnsl buffer overflows

(from 103613-42)

4067374 localtime(0) error

(from 103613-41)

4135388 rpc.nisd buffer overflow
4018801 ypmatch causes console message after patch T103187-16

(from 103613-40)

4127727 getgrgid_r() can corrupt stack / buffers if buffer is too small.
4128660 An application using getnam_r core dumps with the latest libc patch
4118037 getgrent_r() hangs if nis is not up and libthread is linked in.

(from 103613-39)

4105997 Y2000 tm_test01 fails with current S2.5.1 strptime()
4098943 'yp_match' function not working in compatibility mode
4085394 TCP connections to rpcbind remain established if client is halted.
4062999 "Error in RPC subsystem" error from nisstat,nisupdkeys with +10 NIS+ sub-domains

(from 103613-38)

1243441 abort() function does not work correct in threaded application

(from 103613-37)

4045229 strptime and getdate year calculation does not count century; strptime range checks
4050818 getdate %C (century) should use current year offset if year offset not given
1189481 automountd caches old ip address of nfs server and never refreshes

(from 103613-36)

4075462 nisd is not closing file descriptors.
1168376 NIS+ servers should be allowed to be in the domain they serve.

(from 103613-35)

4080264 ypbind.pid file not created for diskless clients
4052565 x86 fork1() child hang in malloc

(from 103613-34)

4022240 Informix processes hang with corrupt TLI endpoint state

(from 103613-33)

4055257 realloc failure does not leave original region "intact"

(from 103613-32)

1225430 ypbind can get requests before it is ready for them

(from 103613-31)

4045268 nis_cachemgr does not verify authenticity of objects
4057606 Out of domain NIS+ lookups don't work after applying fix for 4045268

(from 103613-30)

4060465 setpriority only understands TS and IA
4035403 RPC app breaks in MT mode with "signal fault in critical section"

(from 103613-29)

4011948 cuserid() gets incorrect username is due to application running onto CDE

(from 103613-28)

4022299 syslogd.pid file deadlock prevents syslogd from starting

(from 103613-27)

4045229 strptime and getdate year calculation not count century; strptime range checks
4030045 strxfrm with LC_CTYPE == "de and LC_COLLATE == "de" causes bus error
4022682 nscd dumping core
1262462 create, delete, recreate of user account in NIS+ disruptive to NIS+ server
1206421 NIS+ credential update from client fails due to wrong connection type

(from 103613-26)

4040423 ss4000 with hme interface unable to boot with nsswitch setting using dns

(from 103613-25)

4011495 'zoneinfo' summertime/wintertime (Southern hemisphere) switchover anomaly

	Various geographic regions in the Southern hemisphere report a 
	daylight savings time switchover problem in conjunction with the 
	'zoneinfo' database feeding 'localtime(3)'.

(from 103613-24)

4026833 niscat hangs the rpc.nisd in getmsg when adding a third interface in Solaris 2.5.1.
1159865 select small timeouts should round up

(from 103613-23)

4025665 nisping -Ca broken by fix to bugid#4005483

	This patch is generated to workaround bug 4010430 -- installpatch
	should ignore a required patch when not applicable to a target
	system.  The workaround is to include an empty root sparse patch
	package.  This will allow patch dependency requirement to be
	met in a server/client configuration.

(from 103613-22)

4029971 getopt security problem

	The fix for 4029971 requires the static version of rcp to be
        included in the patch.

(from 103613-21)

4029971 getopt security problem

(from 103613-20)

4018883 getgrnam_r() & getpwnam_r() can overrun buffers.
4018887 gethostbyname_r() can overrun buffer.
1223323 No bounds checking on NIS_GROUP environment variable

(from 103613-19)

1247052 nis_dumplog_r translates all failures into NIS_RPCERROR

	nis_dumplog_r() frequently fais because it attempts to reuse a 
	connection that had been closed on the server side, but couldn't
	handle the resulting error.  Consequently, the dumplog request
	gets aborted and the NIS+ replica would remain out of sync with
	the master until the next update for the NIS+ directory in question.

(from 103613-18)

1212974 Bogus bootparam packet makes rpcbind stop working

(from 103613-17)

4016724 nis_cptime failure in nisd causes unreliable update propagation

(from 103613-16)

4005483 replica doing full resync too frequently

(from 103613-15)

4006674 rpc.nisd crash because of simple user program

	The rpc.nisd can free the same memory twice during modify or add
	operations.  Since part of the cleanup work is to zero out pointers,
	the second free can stomp on memory that's been re-used, or an
	administrative information used by the malloc library.  The latter
	scenario leads to a core dump.

1249373 Application file descriptors are being closed without applications knowledge
1232758 finddirectory call fails when there are too many replicas
1223326 possible memory leak in "rpc.nisd"

	rpc.nisd can leak memory if a nis_list with search criteria is
	done with callbacks.  The leak will be equal to 8*(number of matched
	entries) bytes.  The reason for the leak is that memory is being
	freed in the child process but not in the parent rpc.nisd.

(from 103613-14)

1230570 nisplus strips leading spaces before doing lookup.

(from 103613-13)

1259200 no more syslog from rpc.nisd after the fix for 1244917 was integrated

	The fix for bug 1244917 prevents syslog from working.  This fix
	is to call closelog() so that forking and subsequent closing of 
	all field descriptors does not prevent syslog from working.

(from 103613-12)

1248090 getwd very slow over nfs to 4.1.3 server

The fix for bug 1220400 ("lofs becomes confused about where the present 
working directory "." is") introduced a new problem -- where getcwd() 
would erroneously believe that it was passing a mount point, and start 
lstat()ing every directory in the current directory.  With lots of 
subdirectories, and especially over NFS, these unnecessary lstat() calls 
could result in very noticeable delays (on the order of minutes with ten+ 
thousand subdirectories, and/or a slow network).

(from 103613-11)

1249903 rpc.nisd hung in nis_list_svc on getmsg in _rcv_conn_con

(from 103613-10)

1221809 absence of user public key caching makes NIS+ inter-domain lookups unreliable

(from 103613-09)

1245451 syslogd failing to log messages every 12-48 hours of operation

(from 103613-08)

1264708 get segmt fault on malloc with getcwd, chdir and opendir over PATH_MAX

(from 103613-07)

1265785 fwrite regression from 2.4 to 2.5, 2.5.1

(from 103613-06)

1262666 nscd client backend, getxby_door, has buffer overflows

(from 103613-05)

1244917 syslog(3) does not correctly cache the file descriptor that it writes on

(from 103613-04)

1255623 getdate() fails on 1st of month with julian date

(from 103613-03)

1246864 Multithreaded C++ program using strptime() causes bus error when 'new' used.

(from 103613-02)

1219671 Memory is given free which was never allocated before.

(from 103613-01)

1235867 line buffered stdio loses data and/or hangs in 2.5

(from 103616-04)

1258916 nis_cachemgr causing other many processes to hang in semop

(from 103616-03)

1213016 User looses access to secondary groups if nisplus root master is not up

(from 103616-02)

1234630 Client side RPC handle caching and server side fd leaks needs a general solution

(from 103616-01)

1244872 nis_cachemgr can deadlock when servers are unavailable
1242395 NIS+ TTLs for objects not correct on 2.4 slave replicas and 2.3 slave/clients.

(from 103655-01)

1246630 nisd can potentially hang if it gets a SIGCHLD/SIGHUP on an established callback

Patch Installation Instructions: 
-------------------------------- 
Refer to the Install.info file within the patch for instructions on
using the generic 'installpatch' and 'backoutpatch' scripts provided
with each patch.  Any other special or non-generic installation
instructions should be described below.

Special Install Instructions: 
-----------------------------

	NOTE 1:	     TO GET THE COMPLETE FIX FOR BUGID 4040423 (SS4000 
		     WITH HME INTERFACE UNABLE TO BOOT WITH NSSWITCH 
		     SETTING USING DNS), ONE NEEDS TO INSTALL PATCH 
		     103631-07 (OR NEWER).

	NOTE 2:      THE FOLLOWING PATCHES FIX A LIMITATION WITH RESOURCE 
		     QUOTAS:

                     103641-11 (or newer)   kernel update
                     104737-03 (or newer)   usr/bin/csh patch
                     105045-01 (or newer)   usr/bin/renice patch
                     104260-04 (or newer)   kernel/fs/tmpfs patch

	NOTE 3:      TO GET THE COMPLETE FIX FOR BUGID FOR 1225430 (YPBIND
                     CAN GET REQUESTS BEFORE IT IS READY FOR THEM), ONE ALSO
                     NEEDS TO INSTALL THE YPBIND PATCH (105166-01 or newer).

	NOTE 4:      TO GET THE COMPLETE FIX FOR BUGID FOR 4080264 (YPBIND.PID
                     FILE NOT CREATED FOR DISKLESS CLIENTS), ONE ALSO NEEDS
                     TO INSTALL THE YPBIND PATCH (105166-02 or newer).

	NOTE 5:      If you are installing this patch to fix the "non-root
                     NIS+ server not living in domain it serves" problem,
                     you will also need to install the chkey/keylogin patch
                     (104969-02 or newer).  You will aslo need to install
                     the kernel patch (103641-17 or newer) if you are instal-
		     ling this patch on a NIS+ server that is either a Secure 
		     NFS client or server.

	Instructions on how to set up the non-root NIS+ server to live
	in the domain it serves:

	Setting up an existing non-root NIS+ server:
	1.  Install this libnsl/NIS+ commands patch on the non-root 
	    NIS+ server.  Also install the kernel patch (103641-17 or newer) 
	    if this server is either a Secure NFS client or server.
	2.  Change the /etc/defaultdomain on the server to the domain 
	    it serves.
	3.  Reboot the server.

	Setting up a new non-root NIS+ server:
	1.  Set up the server as described in the NIS+ docs.
	2.  Install this libnsl/NIS+ commands patch on this new NIS+ server.  
	    Also install the kernel patch (103641-17 or newer)
	    if this server is either a Secure NFS client or server.
	3.  Change the /etc/defaultdomain on the server to the domain it 
	    serves.
	4.  Reboot the server.

	NOTE 6:      TO GET THE COMPLETE FIX FOR BUGID FOR 4085394 (TCP
                     connections to rpcbind remain established if client
                     is halted), ONE ALSO NEEDS TO INSTALL THE RPCBIND
                     PATCH (104332-07 or newer).
