mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-13 05:41:26 +01:00
env: Fix crash when -S string is not empty but no operand follows.
split_spaces() set argc in main() incorrectly, which caused trouble for getopt(). Examples: env -S '\c' env -S -i PR: 197769 MFC after: 1 week
This commit is contained in:
parent
8f3ad0f84e
commit
6ab1d4d9c3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=279779
33
tools/regression/usr.bin/env/regress-env.rgdata
vendored
33
tools/regression/usr.bin/env/regress-env.rgdata
vendored
@ -382,3 +382,36 @@ gblenv=OUTSIDEVAR=OutsideValue
|
||||
setenv:D=D_ThisisAlongstring_D1
|
||||
stdout:A_ThisisAlongstring_A1 B_ThisisAlongstring_B1 C_ThisisAlongstring_C1 D_ThisisAlongstring_D1 ScriptName: [%-script.pathname-%]
|
||||
[run]
|
||||
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -S '\c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -S'\c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -u foo -S '\c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -u foo -S'\c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -S '-u bar \c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -S'-u bar \c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -u foo -S '-u bar \c' >/dev/null
|
||||
[run]
|
||||
[test]
|
||||
sb_args:sh
|
||||
script:[%-testpgm.pathname-%] -u foo -S'-u bar \c' >/dev/null
|
||||
[run]
|
||||
|
1
tools/regression/usr.bin/env/regress-sb.rb
vendored
1
tools/regression/usr.bin/env/regress-sb.rb
vendored
@ -346,6 +346,7 @@ class RGTestOptions
|
||||
# "just anything" that matches the general pattern. There are
|
||||
# no blanks in the recognized values, but I use an x-tended
|
||||
# regexp and then add blanks to make it more readable.
|
||||
optval.gsub!(/\[%- testpgm\.pathname -%\]/x, $testpgm)
|
||||
optval.gsub!(/\[%- testpgm\.basename -%\]/x, File.basename($testpgm))
|
||||
optval.gsub!(/\[%- script\.pathname -%\]/x, $scriptfile)
|
||||
|
||||
|
4
usr.bin/env/envopts.c
vendored
4
usr.bin/env/envopts.c
vendored
@ -372,9 +372,9 @@ str_done:
|
||||
*nextarg = NULL;
|
||||
|
||||
/* Update optind/argc/argv in the calling routine */
|
||||
*origind = 1;
|
||||
*origc += addcount;
|
||||
*origc += addcount - *origind + 1;
|
||||
*origv = newargv;
|
||||
*origind = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user