Concatenate arguments to pass to `sh`

Co-authored-by: KlzXS <klzx+github@klzx.cf>
Co-authored-by: Arun Prakash Jana <engineerarun@gmail.com>
This commit is contained in:
Arun 2023-01-15 10:59:36 +05:30 committed by GitHub
parent 8a1e32d9eb
commit 428c652d36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 1 deletions

View File

@ -4490,12 +4490,29 @@ static bool get_output(char *file, char *arg1, char *arg2, int fdout, bool page)
pid = fork();
if (pid == 0) {
/* In child */
char *bufptr = file;
close(cmd_in_fd);
dup2(cmd_out_fd, STDOUT_FILENO);
dup2(cmd_out_fd, STDERR_FILENO);
close(cmd_out_fd);
spawn(utils[UTIL_SH_EXEC], file, arg1, arg2, F_MULTI);
if (bufptr && arg1) {
char argbuf[CMD_LEN_MAX];
len = xstrsncpy(argbuf, file, xstrlen(file) + 1);
argbuf[len - 1] = ' ';
bufptr = argbuf + len;
len = xstrsncpy(bufptr, arg1, xstrlen(arg1) + 1);
if (arg2) {
bufptr[len - 1] = ' ';
xstrsncpy(bufptr + len, arg2, xstrlen(arg2) + 1);
}
bufptr = argbuf;
}
spawn(utils[UTIL_SH_EXEC], bufptr, NULL, NULL, F_MULTI);
_exit(EXIT_SUCCESS);
}