2.16. RHBA-2011:1072: new package: tcsh617
Tcshis a command language interpreter compatible with the C shell (
csh), which can be used as an interactive login shell, as well as a shell script command processor.
tcshto upstream version 6.17, which incorporates a number of bug fixes and enhancements over the previous version (6.14), which was released as a part of Red Hat Enterprise Linux 5.5. The tcsh package has been retained for compatibility with the older version of
tcshwho require the bug fixes and enhancements included in this upgraded package are advised to first uninstall the tcsh package and then install this new tcsh617 package. (BZ#676136)
tcshshell used to call
malloc()-related functions inside signal handlers. This could cause
tcshto become unresponsive due to calling just-interrupted internal
glibclocking algorithms again. Operations related to
malloc()were moved from signal handlers to common routines.
- Previously, the
tcsh(1)man page stated that the shell would not run a set-user ID script without an
-bargument. This statement was removed from the man page because it is forbidden to run set-user ID scripts in Red Hat Enterprise Linux 5.
- Prior to this update, the
tcsh(1)man page inaccurately stated that it is mandatory to use the
groupoption when using the
newgrpbuilt-in command. The corrected statement now says that using
- Previously, the
tcshshell allowed to name variables in incorrect formats, such as by beginning a variable name with a digit. This issue has been fixed: variable names are now verified according to Unix variable-naming conventions.
- BZ#437079, BZ#437080
tcsh(1)man page inaccurately stated that the
nohupbuilt-in commands, when used without an argument, can be used only within a shell script. The man page has been corrected: it now states that the
nohupbuilt-in commands can be used when running the shell non-interactively.
tcshdid not exit properly, it could have entered an infinite loop, using 100% of the CPU, and become unresponsive. This was caused by a function interrupting the exit routine and then re-entering the code and thus causing it to loop infinitely.
- This package fixes the return value of the
$?) variable in the case of pipelines and backquoted commands. The
anyerrorvariable, which selects behavior, has been added to retain the backward compatibility.
tcshevaluated a backquoted command (using command substitution) which itself contained backquotes, it could have dumped core due to a buffer overflow. With this update, nested command substitutions are now handled correctly, and
tcshno longer dumps core in this situation.
- Previously, when the
LANGenvironment variable was set to
tcshshell could ignore several characters that were following a wide (greater than 8 bits) character while receiving user's input. This package fixes the issue and
tcshno longer ignores any characters.
- Previously, when a command was substituted using backquotes, a second, redundant
fork()system call was performed. This could have caused problems when a child process needed to find the PID of its
tcshparent. With this new package, only one
- Previously, running
tcshin verbose mode caused the shell to append history to its output on exit. This new package fixes the issue and
tcshnow works as expected.
- On a local machine,
REMOTEHOSTenvironment variable to an empty string, even though this variable should only have been set on a remote machine. This error has been fixed and
REMOTEHOSTis no longer set on a local machine.
- Previously, if the
printexitvaluevariable was set,
tcshreturned the exit code number as a part of the command output, rendering the output unusable. This has happened due to a missing job status flag. The proper flag has been set and the command output is now correct.
- Previously, under certain circumstances, a null pointer may have been incorrectly dereferenced, causing the
tcshshell to terminate unexpectedly. With this update, the pointer is now tested for the
NULLvalue before it is dereferenced, and
tcshno longer crashes in this circumstance.
tcshshell entered an infinitive loop when standard output was redirected to a child process by a pipe. When the child process was terminated,
tcshtried to print a message to the already-closed pipe as a high-priority event that could never finish. This has been fixed so in case that such child process terminates, the relevant error event is removed from the event queue before it could have been written to the broken pipe, and the parent process is terminated as well.