start-stop-daemon: fix "both -x and -a" case: -a does override argv[0]
No binary (build failed)
—
(log yok)
| @@ -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 | |