An updated tcsh package that fixes various bugs is now available for Red Hat Enterprise Linux 6.
Tcsh is an enhanced and compatible version of the C shell (csh). It is a command language interpreter, which can be used as an interactive login shell, as well as a shell script command processor.
Bug Fixes
- BZ#700309
Under certain circumstances when using the cwd symbolic link, a null pointer may have been incorrectly dereferenced, causing the tcsh shell to terminate unexpectedly. With this update, the pointer is now checked properly and tcsh no longer crashes.
- BZ#658190
This package fixes the return value of the "status" (or "$?") variable in the case of pipelines and backquoted commands. The "anyerror" variable, which selects the behavior, has been added to retain backward compatibility.
- BZ#690356
If the tcsh shell redirected standard output to a child process using a pipe and this child process terminated, the shell tried to print a message to the already-closed pipe as a high-priority event that could never been finished. As a consequence, tcsh entered an infinite loop and consumed up to 100% of the CPU. To fix this issue, this error event is now removed from the event queue before the shell tries to write it to the broken pipe. As result, the parent process terminates ordinarily.
- BZ#684063
Prior to this update, the blkend() function was called redundantly in the tsch code. These calls had no effect on tcsh functionality and thus they have been removed. Tcsh functionality remains unchanged and the code is now more effective.
- BZ#672592
The tcsh shell allowed variables to named in incorrect formats, such as by allowing a variable name to begin with a digit. This issue has been fixed: variable names are now verified according to Unix variable-naming conventions.
All users of tcsh are advised to upgrade to this updated package, which resolves these issues.