Remove all sprintf calls

Replace them with snprintf, which ensures buffer overflows won't
happen.
This commit is contained in:
Simon Ser 2022-02-08 09:52:24 +01:00
parent 9a6687ee04
commit cd277e3235
4 changed files with 7 additions and 6 deletions

View file

@ -28,8 +28,9 @@ static bool terminal_execute(char *terminal, char *command) {
fprintf(tmp, "#!/bin/sh\nrm %s\n%s", fname, command);
fclose(tmp);
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);
size_t cmd_size = strlen(terminal) + strlen(" -e ") + strlen(fname) + 1;
char *cmd = malloc(cmd_size);
snprintf(cmd, cmd_size, "%s -e %s", terminal, fname);
execlp("sh", "sh", "-c", cmd, NULL);
sway_log_errno(SWAY_ERROR, "Failed to run command, execlp() returned.");
free(cmd);