sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 7beeb9e61b7f18a8c2e9aa015958cffde9b76c05
parent e3e99d961dc445258c08ec47b22ec83af38197f6
Author: Simon Ser <contact@emersion.fr>
Date:   Fri, 16 Apr 2021 10:31:30 +0200

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

This stops assuming the POSIX shell command is located in /bin.

Diffstat:
Msway/commands/exec_always.c | 2+-
Msway/swaynag.c | 4++--
Mswaynag/swaynag.c | 8++++----
3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/sway/commands/exec_always.c b/sway/commands/exec_always.c @@ -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; diff --git a/sway/swaynag.c b/sway/swaynag.c @@ -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); diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c @@ -30,8 +30,8 @@ static bool terminal_execute(char *terminal, char *command) { chmod(fname, S_IRUSR | S_IWUSR | S_IXUSR); char *cmd = malloc(sizeof(char) * (strlen(terminal) + strlen(" -e ") + strlen(fname) + 1)); sprintf(cmd, "%s -e %s", terminal, fname); - execl("/bin/sh", "/bin/sh", "-c", cmd, NULL); - sway_log_errno(SWAY_ERROR, "Failed to run command, execl() returned."); + execlp("sh", "sh", "-c", cmd, NULL); + sway_log_errno(SWAY_ERROR, "Failed to run command, execlp() returned."); free(cmd); return false; } @@ -69,8 +69,8 @@ static void swaynag_button_execute(struct swaynag *swaynag, sway_log(SWAY_DEBUG, "$TERMINAL not found. Running directly"); } - execl("/bin/sh", "/bin/sh", "-c", button->action, NULL); - sway_log_errno(SWAY_DEBUG, "execl failed"); + execlp("sh", "sh", "-c", button->action, NULL); + sway_log_errno(SWAY_DEBUG, "execlp failed"); _exit(EXIT_FAILURE); } }