← Commit list

77524a311

Denys Vlasenko
Denys Vlasenko
2019-01-14
SUCCESS Duration: 150s

Subject

start-stop-daemon: fix "both -x and -a" case: -a does override argv[0]

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

debianutils/start_stop_daemon.c+5 -2
@@ -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);
}
testsuite/start-stop-daemon.tests+7 -0
@@ -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