==========================================================================
The checksum's (found through sum -r) of the files that you have received
(other than this README) are as follows:

44131      2 patchSG0001145
00315     35 patchSG0001145.eoe1_sw
45044      2 patchSG0001145.idb
54026      6 patchSG0001145.nfs_man
11017    111 patchSG0001145.nfs_sw
==========================================================================



				  - 1 -



       1.  Patch_SG0001145_Release_Note

       This release note describes patch SG0001145 to IRIX 5.2.

       1.1  Supported_Hardware_Platforms

       This patch contains bug fixes for all hardware platforms.
       The software cannot be installed	on other configurations.

       1.2  Supported_Software_Platforms

       This patch contains bug fixes for IRIX 5.2 for all hardware
       platforms.  The software	cannot be installed on other
       configurations.

       1.3  Bugs_Fixed_by_Patch_SG0001145

       This patch contains fixes for the following bugs	in IRIX
       5.2.  Bug numbers from Silicon Graphics bug tracking system
       are included for	reference.

	  o This patch brings the IRIX 5.2 versions of rpc.lockd
	    and	rpc.statd up to	the stability level of the IRIX	5.3
	    versions contained in Patch	SG0001128.

	  o As assertion failure in rpc.lockd has been corrected.
	    (BUG 265699)

	  o The	NLM procedure NLM_TEST has been	fixed.	Previously,
	    it always returned a system	error.	(BUG 276896)

	  o rpc.statd(1M) has been corrected to	discard	hosts for
	    which gethostbyname(3N) fails during the crash
	    notification process.

	  o The	internal lock bookkeeping done by rpc.lockd has
	    been reworked to eliminate inconsistencies which result
	    in assertion failures.  (BUG 322801) Race conditions
	    involving lock cancels for blocked locks have been
	    corrected.	The handling of	crash indications has been
	    reworked to	ensure the proper release of locks for
	    crashed clients and	to eliminate internal
	    inconsistencies.

	  o Under some circumstances, lockd would attempt to
	    respond to a lock request using tcp	when it	should have
	    used udp.  This has	been corrected.

	  o Both lockd and statd exhibit a security vulnerability
	    described in CERT VU 15781.	 Through the SM_MON RPC
	    call, a client could cause system file such	as











				  - 2 -



	    /etc/passwd	to be deleted.	(BUG 340903)

	  o An option has been added to	rpc.lockd(1M) to support
	    file locking between UNIX machines and DOS machines
	    running PC-NFS and compatible file sharing utilities.
	    Normally, UNIX and DOS lock	requests are both handled
	    by rpc.lockd with seperate-but-equal mechanisms; hence
	    it is possible for a DOS machine and a UNIX	machine	to
	    both lock the same file.  With the new option,
	    rpc.lockd sets an SVID-compatible lock in response to a
	    DOS	SHARE requests,	so that	UNIX clients recognize DOS
	    locks and vice-versa.  (RFE	235334)

	  o It was reported that rpc.lockd takes a segmentation
	    fault whenever MS-Mail attempts to perform record
	    locking.  (Bug report 240232)

	  o Over time, rpc.lockd will use up all of the	entries	in
	    its	open file table.  This is because it uses a field
	    in a lock record after the record has been freed, thus
	    making an invalid entry in the list	of locks held on a
	    file.  This	in turn	causes the file	to not be closed
	    even though	all of the locks have been released.  (Bug
	    report 239898)

	  o There is a bug in the internal lock	accounting of
	    rpc.lockd which will cause it to loose track of locks
	    and	release	sysids early (i.e., when locks are still
	    held for the remote	process).  This	causes some locks
	    to never be	unlocked, eventually resulting in a hang.
	    This will happen when a remote request is received
	    which will block on	a remote lock held by another
	    process/system.  rpc.lockd does not	properly account
	    for	these.	It currently does not record such lock
	    requests in	the list of outstanding	locks which it
	    maintains.	(Bug report 239101)

	  o Processes can hang when locking files over NFS.  This
	    will occur with two	or more	processes running on
	    different systems, especially if one is the	server.
	    Signals were being unblocked prematurely resulting in
	    SIGCHLD being delivered before rpc.lockd was ready to
	    handle it.	Lock recording was done	on a per sysid
	    basis when it should have been done	on a per file
	    descriptor basis.  Debug printing of lock types and	RPC
	    status codes was not functioning correctly.	 (Bug
	    report 238210)

	  o rpc.lockd with IRIX	5.2 NFS	(together with Patch 12)
	    does not reuse sysid's in certain cases. This causes
	    the	users application to hang when he runs out on the











				  - 3 -



	    server.  (Bug report 232090)

	  o The	local lock daemon will discard KLM requests when
	    the	status monitor cannot be contacted.  This causes
	    the	user process to	hang and the kernel to continue	to
	    retry the request.	(Bug report 216141)

	  o rpc.lockd has been observed	to cause applications to
	    hang on a seemingly	random basis.  Under certain
	    circumstances, rpc.lockd would not contact the status
	    monitor.  This would result	in rpc.lockd not being
	    notified of	a restart of a remote rpc.lockd.  Thus,
	    rpc.lockd would not	know to	flush its cached client
	    handes for that remote rpc.lockd.  A hang results.
	    (Bug report	206436)

	  o The	rpc.lockd debug	print function pr_oh can cause a
	    core dump from a segmentation fault.  This is due to
	    the	use of unsigned	arithmetic without checking a value
	    to see if it is zero.  A dereference on NULL results.
	    (Bug report	205694)

	  o The	NFS lock manager does not release sysids until the
	    last lock on a file	has been released.  It determines
	    whether or not locks are held via the F_RGETLK fcntl(2)
	    command.  rpc.lockd	uses a timer mechanism to garbage
	    collect its	file descriptor	and sysid tables.  Sysids
	    will never be released if there is one process which
	    acquires a lock and	never releases it.  (Bug report
	    195385)

       1.4  Subsystems_Included_in_Patch_SG0001145

       This patch release includes these subsystems:

	  o patchSG0001145.nfs_man.nfs

	  o patchSG0001145.nfs_sw.nfs


       1.5  Installation_Instructions

       Because you want	to install only	the patches for	problems
       you have	encountered, patch software is not installed by
       default.	After reading the descriptions of the bugs fixed in
       this patch (see Section 1.3), determine the patches that
       meet your specific needs.

       If, after reading Sections 1.1 and 1.2 of these release
       notes, you are unsure whether your hardware and software
       meet the	requirements for installing a particular patch,	run











				  - 4 -



       inst.

       Patch software is installed like	any other Silicon Graphics
       software	product.  Follow the instructions in your Software
       Installation Administrator's Guide to bring up the miniroot
       form of the software installation tools.

       Follow these steps to select a patch for	installation:

	 1.  At	the Inst>prompt, type

	     install patchSGxxxxxxx

	     where xxxxxxx is the patch	number.

	 2.  Select the	desired	patches	for installation.

	 3.  Initiate the installation sequence. Type

	     Inst> go

	 4.  You may find that two patches have	been marked as
	     incompatible.  If this occurs, you	must deselect one
	     of	the patches.

	     Inst> keep	patchSGxxxxxxx

	     where xxxxxxx is the patch	number.

	 5.  After completing the installation process,	exit the
	     inst program by typing

	     Inst> quit


       To remove a patch, use the versions remove command as you
       would for any other software subsystem.	The removal process
       reinstates the original version of software unless you have
       specifically removed the	patch history from your	system.

       versions	remove patchSGxxxxxxx

       where xxxxxxx is	the patch number.

       To keep a patch but increase your disk space, use the
       versions	removehist command to remove the patch history.

       versions	removehist patchSGxxxxxxx

       where xxxxxxx is	the patch number.









