Patch-ID# 100398-02 Keywords: nse Synopsis: nse 1.3RevA: General bug fixes for 1.3 release Date: 04-Oct-91 SunOS release: 4.1, 4.1.1 Unbundled Product: nse Unbundled Release: 1.3.1 Topic: General Fixes BugId's fixed with this patch: 1027779, 1051032, 1052654, 1052926, 1055029, 1038378, 1053107, 1053432, 1058598, 1058976, 1061590, 1062672, 1064906, 1069925 Architectures for which this patch is available: sun4, sun4c, sun3 NIS master (see bug 1069925 below) Patches which may conflict with this patch: Customers who want to Configure the NSE should not install this patch. The bug fixes do not support the Configurable NSE. Obsoleted by: SYS_V Rel 4 Problem Description: The following bugs have been fixed in this patch release: o In previous releases of the NSE, a potential security breach existed. It was possible to obtain illicit control over the /etc directory by creating it as an NSE execset directory. This is no longer possible. o The performance of the make command has been improved when processing archived libraries. o The make program dumped core when it encountered a recursive target whose file name began with ".". o In Release 1.3, the resync command behaved incorrectly in the following sequence of commands: 1. In a parent environment, the vcs create and vcs free commands are executed on a file. 2. A child environment is acquired from the parent. 3. In the parent, the file is changed and the vcs create command is executed on it. 4. The resync command is executed in the child. In this case the resync command failed erroneously, claiming that the history file was non-existent. o The preserve command dumped core when a revision name exceeded the 14 character maximum. o The preserve command dumped core when preserving a file: - That had been renamed - That was part of a target variant - Whose containing directory had not been processed o If both the clear file and the SCCS history file were not present in a child environment, the resync command's attempt to update that file from the parent would fail with the SCCS error: ERROR [/mnt/bin/prog.c]: `' nonexistent (ut4) This condition no longer produces an error of any kind. o When the acquire command was used to acquire a specified named revision, it mistakenly acquired the version of a makefile from the latest revision instead of from the specified named revision. o Under some conditions .nse_bdi files were incorrectly generated during a reconcile operation. This caused the reconcile command to loop infinitely until available swap space was exhausted. o The NSE code that "explodes" targets into their constituent parts uses SunOS utilities such as make and cpp. When the NSE was developed under SunOS 3.x, cpp restricted the number of directories in the include path to 12; the NSE contained the same restriction. Under SunOS 4.0, this limit was raised to 100 directories for cpp, but remained at 12 for the NSE. When an include path contained more than 12 directories, target explode code in preserve, reconcile and resync dumped core. In release 1.3.1 the limit has been raised to 100 directories. o The NSE 1.3 release CD for Sun4 machines did not include a way to install a Sun3 as a NIS master. The needed files are included in this patch, as well as the installation instructions. See below. Documentation Error ----------------- The following documentation error exists in the NSE 1.3 document set. o The NSE 1.3 documentation for the reconcile command indicates that when used with the -R option, reconcile will not accept a parent environment argument. This is incorrect. If for some reason a child environment is deleted while a reconcile is pending between it and its parent, it is still possible to recover the state of the parent environment. In this case the reconcile command is executed while inactivated, and the parent environment is specified by means of the -p option. The correct syntax is: reconcile [-c comment] [-n] [-q] [-N] component ... or reconcile -R [-q] [-p env] INSTALL: 1) On a Sun4, as root, move files which are to be replaced out of the way: mv /usr/nse/etc/rpc.nsed /usr/nse/etc/rpc.nsed.FCS mv /usr/nse/etc/nse.putbackd /usr/nse/etc/nse.putbackd.FCS mv /usr/nse/bin/nseexecset /usr/nse/bin/nseexecset.FCS mv /usr/nse/bin/nsetarg /usr/nse/bin/nsetarg.FCS mv /usr/nse/bin/nsecmd /usr/nse/bin/nsecmd.FCS mv /usr/nse/unix/make /usr/nse/unix/make.FCS mv /usr/nse/man/man1/reconcile.1 /usr/nse/man/man1/reconcile.1.FCS mv /usr/bin/make /usr/bin/make.nse1.3FCS 3) Install the patch files from location in step 1: cp nse/etc/rpc.nsed /usr/nse/etc cp nse/etc/nse.putbackd /usr/nse/etc cp nse/etc/NSE_RELEASE /usr/nse/etc cp nse/bin/nseexecset /usr/nse/bin cp nse/bin/nsetarg /usr/nse/bin cp nse/bin/nsecmd /usr/nse/bin cp nse/unix/make /usr/nse/unix cp nse/man/man1/reconcile.1 /usr/nse/man/man1 cp nse/etc/rpc.nsed.sun3 /usr/nse/etc/rpc.nsed.sun3 cp bin/make /usr/bin 4) Once you have installed the new files, you will need to kill any rpc.nsed daemons which are running on the Sun4. To do this: ps -ax | grep rpc.nsed kill -9 ... where each is the process id of an rpc.nsed daemon currently running on the system. The system may have zero, one, or several rpc.nsed processes running. To complete the installation, kill all of these processes. To install a Sun3 as the NIS master: 1) On the Sun3 NIS Master-to-be, become root: su (enter passwd) 3) Move the old rpd.nsed aside, if there is one: mv /usr/nse/etc/rpc.nsed /usr/nse/etc/rpc.nsed.FCS 4) Copy the needed files from the sun4 where the patch was installed: (Replace sun4 in the following commands with the name of the sun4 on which you installed the original patch) mkdir /usr/nse /usr/nse/install /usr/nse/etc rcp sun4:/usr/nse/etc/rpc.nsed.sun3 /usr/nse/etc/rpc.nsed rcp sun4:/usr/nse/install/install_client /usr/nse/install rcp sun4:/usr/nse/install/install_nismaster /usr/nse/install rcp sun4:/usr/nse/install/Makefile.nse.4.0 /usr/nse/install 5) Run NSE installation script on the Sun3 to modify files in /etc: (make sure you give the '1' argument) /usr/nse/install/install_client 1 6) Run the script on the Sun3 to install NIS maps: /usr/nse/install/install_nismaster 7) Once you have installed the new files, you will need to kill any rpc.nsed daemons which are running on the Sun3. To do this: ps -ax | grep rpc.nsed kill -9 ... where each is the process id of an rpc.nsed daemon currently running on the system. The system may have zero, one, or several rpc.nsed processes running. To complete the installation, kill all of these processes. FILES INCLUDED IN THIS PATCH: /usr/ bin/ make nse/ RevA.README (this file) bin/ nsecmd (*) nseexecset nsetarg etc/ rpc.nsed (*) nse.putbackd (*) rpc.nsed.sun3 NSE_RELEASE install/ Makefile.nse.4.0* README.sun3.nis.install install_nismaster install_client man/man1/ reconcile.1 unix/ make *NOTE: The files /usr/nse/bin/nsecmd, /usr/nse/etc/rpc.nsed and /usr/nse/etc/nse.putbackd have been shipped with symbols to aid in debugging. This is in an effort to shorten the support cycle and aid in getting NSE problems resolved as soon as possible. The symbols cause the executables to be larged than those which are being replaced. If disk space is short, the files can be stripped using the "strip" command. See the "strip" man page for it's usage. If you have been having problems which have required a login in order to fix them, please don't strip these files. Estimated Size of this patch: 7440 KB