mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix use of strdup on a NULL pointer (#63)
The following set of commands can rarely cause a memory fault when auditing[*] is enabled, although most of the time it will simply cause ksh to write '(null)' to the auditing file in place of a tty name: $ [ -e /etc/ksh_audit ] || echo "/tmp/ksh_auditfile;$(id -u)" | sudo tee /etc/ksh_audit; $ v=$(ksh 2> /dev/null +o rc -ic $'getopts a:bc: opt --man\nprint $?') $ cat /tmp/ksh_auditfile 1000;1593599493;(null); getopts a:bc: opt --man This happens because strdup is used unconditionally on the pointer returned by 'ttyname', which can be NULL if stderr is closed. This then causes 'hp->tty' to be set to null, as strdup returns NULL. See https://github.com/att/ast/issues/1028 src/cmd/ksh93/edit/history.c: - Make strdup duplicate 'notty' instead of NULL to prevent crashes. [*] https://blog.fpmurphy.com/2008/12/ksh93-auditing-and-accounting.html
This commit is contained in:
parent
300cd19987
commit
9a9da2c299
3 changed files with 7 additions and 2 deletions
|
@ -17,4 +17,4 @@
|
|||
* David Korn <dgk@research.att.com> *
|
||||
* *
|
||||
***********************************************************************/
|
||||
#define SH_RELEASE "93u+m 2020-07-05"
|
||||
#define SH_RELEASE "93u+m 2020-07-06"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue