This also fixes that trying to execute a non-regular file with a command name without '/' returns 127 instead of 126. The fix is rather simplistic: treat CMDUNKNOWN as if the command were found as an external program. The resulting fork is a bit wasteful but executing unknown commands should not be very frequent. PR: bin/137659
30 lines
694 B
Plaintext
30 lines
694 B
Plaintext
# $FreeBSD$
|
|
|
|
nosuchtool 2>/dev/null
|
|
[ $? -ne 127 ] && exit 1
|
|
/var/empty/nosuchtool 2>/dev/null
|
|
[ $? -ne 127 ] && exit 1
|
|
(nosuchtool) 2>/dev/null
|
|
[ $? -ne 127 ] && exit 1
|
|
(/var/empty/nosuchtool) 2>/dev/null
|
|
[ $? -ne 127 ] && exit 1
|
|
/ 2>/dev/null
|
|
[ $? -ne 126 ] && exit 1
|
|
PATH=/usr bin 2>/dev/null
|
|
[ $? -ne 126 ] && exit 1
|
|
|
|
dummy=$(nosuchtool 2>/dev/null)
|
|
[ $? -ne 127 ] && exit 1
|
|
dummy=$(/var/empty/nosuchtool 2>/dev/null)
|
|
[ $? -ne 127 ] && exit 1
|
|
dummy=$( (nosuchtool) 2>/dev/null)
|
|
[ $? -ne 127 ] && exit 1
|
|
dummy=$( (/var/empty/nosuchtool) 2>/dev/null)
|
|
[ $? -ne 127 ] && exit 1
|
|
dummy=$(/ 2>/dev/null)
|
|
[ $? -ne 126 ] && exit 1
|
|
dummy=$(PATH=/usr bin 2>/dev/null)
|
|
[ $? -ne 126 ] && exit 1
|
|
|
|
exit 0
|