- Issued:
- 2009-09-02
- Updated:
- 2009-09-02
RHBA-2009:1256 - Bug Fix Advisory
Synopsis
ksh bug fix update
Type/Severity
Bug Fix Advisory
Red Hat Insights patch analysis
Identify and remediate systems affected by this advisory.
Topic
Ksh package that fixes various bugs is now available.
Description
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 includes fixes for the following bugs:
- when umask set a default permission in a subshell, this default
permission would persist after returning to the parent shell. Subsequently,
files in the parent shell might have been created with wrong permissions.
This is now fixed. (BZ#485030)
- ksh removed variables from the environment if their names contained
certain characters, for example, a hyphen or a space. Now, although ksh
does not use environment variables with names that contain these
characters, it keeps them for sub-processes. (BZ#488934)
- the ksh builtins failed to report errors on failed file operations, for
example, if they were unable to write to a file because of no space on a
disk. This could result in data loss, because a user would have no warning
that data was not saved. Builtins now provide a proper return code and
present an error message to the user if they are unable to complete a file
operation. (BZ#465438)
- when typeset was used together with variable assignment in the last
version of ksh, typeset took effect after the assignment, not before.
Because this behavior was the opposite of how typeset works in ksh
versions provided by pdksh and was not documented, it could create surprise
and confusion. Now, ksh changed its behavior and typeset takes
effect before the variable assignment. (BZ#489516)
- the ksh package now includes 'alternatives' which allows ksh switching
with PDKSH. This feature allows users to switch between the ksh-93 and
ksh-88 shells and to port ksh-88 scripts to ksh-93. (BZ#488798)
- ksh sometimes returned wrong OPTIND values after returning from a
subshell when it executed a function within backquotes (backticks). While
the original function would behave as expected, subseqeunt calls would
result in incorrect OPTIND values, even calls made directly to the getopts
function. Now, the use of backquotes does not cause ksh to return wrong
OPTIND values on subsequent calls. (BZ#443889)
- the COMPATIBILITY file which describes differences between ksh-88 and
ksh-93 has been added to %doc. (BZ#494534)
- if the $HISTFILE did not exist and could not be created for some reason
(for example, read-only NFS home) ksh sometimes crashed with a segmentation
fault when trying to insert the last word of the previous command using the
M-_ or M-. keyboard shortcut. This is now fixed. (BZ#494363)
- the last version of ksh replaced the ast-base-locale language catalog
with a ksh-specific language catalog. However, the ksh-specific catalog
lacks translations for many of the locales shipped with ksh. Attempts to
use ksh with a non-English locale would therefore result in error messages.
Ksh now reverts to using the previous catalog, which does not produce these
errors. (BZ#493570)
- in the last version of ksh, braces for a subscripted variable with
${var[sub]} became compulsory when inside [[...]], ((...)) or as a
subscript. Because these braces were previouly optional, some shell scripts
written for earlier versions of ksh no longer worked as expected. Ksh now
recognises cases where the argument can be a pattern, and expands these
variables the same way that it expanded them when the braces were optional.
While this allows many old scripts to work in the current version of ksh,
users cannot be certain that their scripts will work as expected unless
they enclose variables in braces as defined in the ksh documentation.
(BZ#498585)
- ksh now allows command history to be saved in global history file or in
system log. (BZ#502747)
- in the last ksh version, the function nesting counter was zeroed after
forking. Therefore, typeset did not assign values in asynchronously called
functions. This is now fixed. (BZ#507562)
All users of ksh are advised to upgrade to this updated package, which
resolves these issues.
Solution
Before applying this update, make sure that all previously-released
errata relevant to your system have been applied.
This update is available via Red Hat Network. Details on how to use
the Red Hat Network to apply this update are available at
http://kbase.redhat.com/faq/docs/DOC-11259
Affected Products
- Red Hat Enterprise Linux Server 5 x86_64
- Red Hat Enterprise Linux Server 5 ia64
- Red Hat Enterprise Linux Server 5 i386
- Red Hat Enterprise Linux Workstation 5 x86_64
- Red Hat Enterprise Linux Workstation 5 i386
- Red Hat Enterprise Linux for IBM z Systems 5 s390x
- Red Hat Enterprise Linux for Power, big endian 5 ppc
- Red Hat Enterprise Linux Server from RHUI 5 x86_64
- Red Hat Enterprise Linux Server from RHUI 5 i386
Fixes
- BZ - 443889 - getopts function does not work properly when used in a function that is invoked with back quotes
- BZ - 465438 - builtins do not report errors on failed file operations
- BZ - 485030 - Umask value not restored when returning from a subshell
- BZ - 488798 - make ksh use 'alternatives'
- BZ - 488934 - ksh does not declare shell variables with hyphen
- BZ - 489516 - Unexpected behaviour of typeset [options] name=value
- BZ - 493570 - the language catalog is broken
- BZ - 494363 - Segfault with inacessible $HISTFILE
- BZ - 494534 - Please add COMPATIBILITY file to the %doc
- BZ - 498585 - ksh shell variable expansion in conditional expressions
- BZ - 507562 - ksh typeset does not assign value in an asynchronously called function
CVEs
(none)
References
(none)
Red Hat Enterprise Linux Server 5
SRPM | |
---|---|
ksh-20080202-14.el5.src.rpm | SHA-256: e7ae210c4e77cb418573f29ddd4ab2461d72e6e1f81851af88eacbec40c8850c |
x86_64 | |
ksh-20080202-14.el5.x86_64.rpm | SHA-256: 7821633134492110c70b380ebaab23d03ebc4c031b5c01d29a73e31336f8b216 |
ia64 | |
ksh-20080202-14.el5.ia64.rpm | SHA-256: f1b0907309a8d7e0dba70fa642514d96e7fd6fac1255683ecc7db49153190e23 |
i386 | |
ksh-20080202-14.el5.i386.rpm | SHA-256: f7cc32580e3ec34d21f5001bab8f3938a5ea1ab3754bd9a6d3754e00b5e3fc76 |
Red Hat Enterprise Linux Workstation 5
SRPM | |
---|---|
ksh-20080202-14.el5.src.rpm | SHA-256: e7ae210c4e77cb418573f29ddd4ab2461d72e6e1f81851af88eacbec40c8850c |
x86_64 | |
ksh-20080202-14.el5.x86_64.rpm | SHA-256: 7821633134492110c70b380ebaab23d03ebc4c031b5c01d29a73e31336f8b216 |
i386 | |
ksh-20080202-14.el5.i386.rpm | SHA-256: f7cc32580e3ec34d21f5001bab8f3938a5ea1ab3754bd9a6d3754e00b5e3fc76 |
Red Hat Enterprise Linux for IBM z Systems 5
SRPM | |
---|---|
ksh-20080202-14.el5.src.rpm | SHA-256: e7ae210c4e77cb418573f29ddd4ab2461d72e6e1f81851af88eacbec40c8850c |
s390x | |
ksh-20080202-14.el5.s390x.rpm | SHA-256: a7d7e5b1f6508a450b6e25efd34907fd50ab27701f9f77e50f6e6943553032ee |
Red Hat Enterprise Linux for Power, big endian 5
SRPM | |
---|---|
ksh-20080202-14.el5.src.rpm | SHA-256: e7ae210c4e77cb418573f29ddd4ab2461d72e6e1f81851af88eacbec40c8850c |
ppc | |
ksh-20080202-14.el5.ppc.rpm | SHA-256: 55209a6853819b23ad22af124eff729df5b447e7f9f6c975592b95c744047a1b |
Red Hat Enterprise Linux Server from RHUI 5
SRPM | |
---|---|
ksh-20080202-14.el5.src.rpm | SHA-256: e7ae210c4e77cb418573f29ddd4ab2461d72e6e1f81851af88eacbec40c8850c |
x86_64 | |
ksh-20080202-14.el5.x86_64.rpm | SHA-256: 7821633134492110c70b380ebaab23d03ebc4c031b5c01d29a73e31336f8b216 |
i386 | |
ksh-20080202-14.el5.i386.rpm | SHA-256: f7cc32580e3ec34d21f5001bab8f3938a5ea1ab3754bd9a6d3754e00b5e3fc76 |
The Red Hat security contact is secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.