mirror of
https://github.com/troglobit/finit.git
synced 2026-10-02 14:02:52 +07:00
helpers.c:run_interactive() - Check arguments and return values better.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
@@ -501,12 +501,19 @@ int run_interactive(char *cmd, char *fmt, ...)
|
||||
va_list ap;
|
||||
FILE *fp = tmpfile();
|
||||
|
||||
va_start(ap, fmt);
|
||||
vsnprintf(line, sizeof(line), fmt, ap);
|
||||
va_end(ap);
|
||||
if (!cmd) {
|
||||
errno = EINVAL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (fmt) {
|
||||
va_start(ap, fmt);
|
||||
vsnprintf(line, sizeof(line), fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (fmt)
|
||||
print_desc("", line);
|
||||
}
|
||||
|
||||
if (fp && !debug) {
|
||||
oldout = dup(STDOUT_FILENO);
|
||||
olderr = dup(STDERR_FILENO);
|
||||
@@ -515,11 +522,15 @@ int run_interactive(char *cmd, char *fmt, ...)
|
||||
}
|
||||
status = run(cmd);
|
||||
if (fp && !debug) {
|
||||
dup2(oldout, STDOUT_FILENO);
|
||||
dup2(olderr, STDERR_FILENO);
|
||||
if (oldout >= 0)
|
||||
dup2(oldout, STDOUT_FILENO);
|
||||
if (olderr >= 0)
|
||||
dup2(olderr, STDERR_FILENO);
|
||||
}
|
||||
|
||||
if (fmt)
|
||||
print_result(status);
|
||||
|
||||
if (fp && !debug) {
|
||||
size_t len, written;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user