Updated tcsh packages that fix multiple bugs are now available for Red Hat Enterprise Linux 6.
The tcsh packages provide an enhanced and compatible version of the C shell (csh) command language interpreter, which can be used as an interactive login shell, as well as a shell script command processor.
- Prior to this update, the tcsh command language interpreter could run out of memory because of random "sbrk()" failures in the internal "malloc()" function. As a consequence, tcsh could abort with a segmentation fault. This update uses "system malloc" instead and tcsh no longer aborts.
- Prior to this update, aliases were inserted into the history buffer when saving the history in loops if the alias included a statement that did not work in the loop. This update no longer allows to save the history in loops. Now, only the first line of loops and the "if" statement are saved in the history. Aliases now work as expected.
- Prior to this update, casting was removed when calling a function in the history file locking patch. As a consequence, multibyte tests failed. This update reverts the status before the patch and tests no longer fail.
- Prior to this update, the tcsh logic did not handle file sourcing as expected. As a consequence, source commands failed when using a single-line "if" statement. This update modifies the underlying code to handle source commands as expected.
- Prior to this update, the SIGINT signal was not blocked when the tcsh command language interpreter waited for the child process to finish. As a consequence, tcsh could be aborted with the key combination Ctrl+c. This update blocks the SIGINT signal and tcsh is no longer aborted.
All users of tcsh are advised to upgrade to these updated packages, which fix these bugs.