Patch-ID# 101610-07 Keywords: csh lbolt environment length syslog closelog links stream tcp Synopsis: SunOS 5.3: usr/bin/csh patch Date: Jul/15/97 Solaris Release: 2.3 SunOS Release: 5.3 Unbundled Product: Unbundled Release: Topic: SunOS 5.3: usr/bin/csh patch NOTE: To get the complete fix for bug 1260581 (builtin echo command and /usr/ucb/echo didn't set code correctly on error), one needs to install the following patches: 104904-01 (or higher revs) usr/bin/echo patch 101791-04 (or higher revs) usr/bin/ksh patch 101613-04 (or higher revs) usr/bin/jsh patch To get the complete fix for bug 4032974 (system hangs when lbolt wraps around), one needs to also install: 101318-87 (or higher revs) kernel patch BugId's fixed with this patch: 1023533 1163897 1165249 1172710 1175176 1260581 4032974 Changes incorporated in this version: 4032974 Relevant Architectures: sparc Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: For 2.3 /usr/bin/csh Problem Description: 4032974 system hangs when lbolt wraps around. (from 101610-06) 1260581 builtin echo command and /usr/ucb/echo didn't set exit code correctly on error (from 101610-05) 1175176 csh sends syslog messages on tcp stream csh ( which hasn't opened syslog yet ) vforks to execute a command. Child csh does NIS+ lookups and opens syslog. The syslog descriptor is stored in a global for future use. Since the child has been vfork'ed, the parent's global syslog descriptor variable is also altered. Parent csh vforks another child. Since the child wants to write a message to syslog, it checks the global variable and finds it set to the value set by the first child. However, this descriptor actually points to some other stream( TCP) and the syslog message is sent down to the TCP stream. This causes a system crash. (from 101610-04) 1172710 csh does not find files which are links going to non-existent files using ?/*. csh does not find files which are links going to non-existent files using ?/*. (from 101610-03) 1165249 csh closes syslog descriptor directly without calling closelog While executing some commands, csh closes all file descriptors >= 3. This can cause a problem with the syslog interface. The syslog subsystem opens the log device on the first call and stores the file descriptor for future use. If the csh closes this descriptor without calling closelog(), future syslog calls will continue to use this descriptor even though it may now have been re-used for something else. (from 101610-02) 1163897 csh cannot define environment variables whose length are over 20 chars. csh cannot define environment variables whose length are over 20 chars. (from 101610-01) 1023533 csh variable name limited to 18 characters, instead of 20 The csh(1) man page indicates that a "variable name consists of up to 20 letters and digits ...". However, if an attempt is made to use a variable name of over 18 characters, a "Variable syntax" error results. 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: To get the complete fix for bug 1260581 (builtin echo command and /usr/ucb/echo didn't set code correctly on error), one needs to install the following patches: 104904-01 (or higher revs) usr/bin/echo patch 101791-04 (or higher revs) usr/bin/ksh patch 101613-04 (or higher revs) usr/bin/jsh patch To get the complete fix for bug 4032974 (system hangs when lbolt wraps around), one needs to also install: 101318-87 (or higher revs) kernel patch