Use execlp("sh") instead of execl("/bin/sh")

This stops assuming the POSIX shell command is located in /bin.
This commit is contained in:
Simon Ser 2021-04-16 10:31:30 +02:00 committed by Kenny Levinsen
parent e3e99d961d
commit 7beeb9e61b
3 changed files with 7 additions and 7 deletions

View file

@ -65,7 +65,7 @@ struct cmd_results *cmd_exec_process(int argc, char **argv) {
close(fd[0]);
if ((child = fork()) == 0) {
close(fd[1]);
execl("/bin/sh", "/bin/sh", "-c", cmd, (void *)NULL);
execlp("sh", "sh", "-c", cmd, (void *)NULL);
_exit(0);
}
ssize_t s = 0;

View file

@ -87,8 +87,8 @@ bool swaynag_spawn(const char *swaynag_command,
size_t length = strlen(swaynag_command) + strlen(swaynag->args) + 2;
char *cmd = malloc(length);
snprintf(cmd, length, "%s %s", swaynag_command, swaynag->args);
execl("/bin/sh", "/bin/sh", "-c", cmd, NULL);
sway_log_errno(SWAY_ERROR, "execl failed");
execlp("sh", "sh", "-c", cmd, NULL);
sway_log_errno(SWAY_ERROR, "execlp failed");
_exit(EXIT_FAILURE);
}
_exit(EXIT_SUCCESS);