start-stop-daemon: fix "both -x and -a" case: -a does override argv[0]
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
088fec36fe
commit
77524a311a
@ -555,7 +555,10 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
//bb_error_msg("HERE %d '%s'%s'", __LINE__, argv[0], argv[1]);
|
||||
execvp(argv[0], argv);
|
||||
/* Try:
|
||||
* strace -oLOG start-stop-daemon -S -x /bin/usleep -a qwerty 500000
|
||||
* should exec "/bin/usleep", but argv[0] should be "qwerty":
|
||||
*/
|
||||
execvp(execname, argv);
|
||||
bb_perror_msg_and_die("can't execute '%s'", startas);
|
||||
}
|
||||
|
@ -21,4 +21,11 @@ testing "start-stop-daemon without -x and -a" \
|
||||
"1\n" \
|
||||
"" ""
|
||||
|
||||
# Unfortunately, this does not actually check argv[0] correctness,
|
||||
# but at least it checks that pathname to exec() is correct
|
||||
testing "start-stop-daemon with both -x and -a" \
|
||||
'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \
|
||||
"1\n" \
|
||||
"" ""
|
||||
|
||||
exit $FAILCOUNT
|
||||
|
Loading…
Reference in New Issue
Block a user