Product SiteDocumentation Site

1.91. ksh

1.91.1. RHBA-2009:1686: bug fix update

Note

This update has already been released (prior to the GA of this release) as errata RHBA-2009:1686
An updated ksh package that fixes two bugs is now available.
KSH-93 is the most recent version of the KornShell by David Korn of AT&T Bell Laboratories. KornShell is a shell programming language which is also compatible with "sh", the original Bourne Shell.
This updated ksh package includes fixes for the following bugs:
* when a ksh script included multibyte characters, ksh's script parser then failed to parse the script and printed a "syntax error" message. This updated package corrects this error: ksh's script parser now correctly handles multibyte characters and no error is returned when they are found. (BZ#543447)
* the ksh shell uses a special variable, "$!", which contains the process ID (pid) of the last background job or background function. However, the $! variable did not contain the correct pid when it was called within a ksh function (defined with the "function" syntax). With this update, referencing the $! special variable works as expected and the correct process ID of the last background job or function is returned, even when it is referenced from within a ksh script function. (BZ#544974)
All KornShell users are advised to upgrade to this updated package, which resolves these issues.

1.91.2. RHBA-2010:0234: bug fix and enhancement update

An updated Ksh package that fixes various bugs is now available.
KSH-93 is the most recent version of the KornShell by David Korn of AT&T Bell Laboratories -- a shell programming language upwards-compatible with "sh" (the Bourne Shell).
This updated ksh package upgrades ksh to the more recent 2010-02-02 upstream version (release ksh93t+) In addition, this updated ksh package addresses the following bugs:
* running ksh scripts for a long time on an overloaded system resulted in a race condition caused by an inner linear job list getting looped. This resulted in ksh utlising 100 % of the cpu capacity. Some operations on the job list were reordered to prevent this race condition occuring, allowing ksh scripts to be run normally on the system. (BZ#435159)
* when .profile executed a return command, some new processes were executed without working stdin, because it was already closed. This version correctly restores the shell state after return was used in .profile making stdin available for new processes. (BZ#506790)
* ksh returned an incorrect exit code of one when unsetting a variable that was already unset. Ksh now returns zero exit code. (BZ#508869)
* when a parent of a background process was completed, ksh did not wait for output of the background process. Ksh now waits for the output of the background process so preventing the loss of data. (BZ#509326)
* when emacs editing mode was used and an alias was set, it was sometimes evaluated too early causing a syntax error. Aliases are evaluated later in the process now which prevents false positive syntax errors. (BZ#513967)
* ksh indicated commands in the man page that are not available. Man page is now amended to indicate that these commands are not available on Linux systems. (BZ#514485)
* the ksh shell uses a special variable, "$!", which contains the process ID (pid) of the last background job or background function. However, the $! variable did not contain the correct pid when it was called within a ksh function (defined with the "function" syntax). With this update, referencing the $! special variable works as expected and the correct process ID of the last background job or function is returned, even when it is referenced from within a ksh script function. (BZ#520383)
* when a ksh script included multibyte characters, the ksh script parser sometimes failed to parse the script and printed a syntax error message. This updated package corrects this error: the ksh script parser now correctly handles multibyte characters and no error is returned when they are found. (BZ#538655)
* when the built-in ksh typeset function was used with the array variable, it was affecting the size of the array by appending one empty value. This is now corrected and typeset does not unintentionally affect size of arrays. (BZ#538857)
* some upstream behavioural changes of ksh were not sufficiently documented, specifically parenthesis which was supported in ksh-93r or older. ksh Now ships Release and ChangeLog documents wherein important changes are documented. (BZ#541654)
* when evaluating a non-number variable that contains a point in a numeric comparison, ksh crashed with a segmentation fault. With this update, ksh checks whether the point has numerical or parent separator meaning, and produces only an error message when appropriate. (BZ#548519)
* when the array variable was declared using the built-in 'set', but not defined, this declaration did not take effect. The built-in 'set' included in the updated ksh declares array variables correctly. (BZ#553611)
All users of ksh are advised to upgrade to this updated package, which resolves these issues.

Note: This documentation is provided {and copyrighted} by Red Hat®, Inc. and is released via the Open Publication License. The copyright holder has added the further requirement that Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. The CentOS project redistributes these original works (in their unmodified form) as a reference for CentOS-5 because CentOS-5 is built from publicly available, open source SRPMS. The documentation is unmodified to be compliant with upstream distribution policy. Neither CentOS-5 nor the CentOS Project are in any way affiliated with or sponsored by Red Hat®, Inc.