|
|
@ -15,21 +15,21 @@ struct cgit_context ctx;
|
|
|
|
int chk_zero(int result, char *msg)
|
|
|
|
int chk_zero(int result, char *msg)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (result != 0)
|
|
|
|
if (result != 0)
|
|
|
|
die("%s: %s", msg, strerror(errno));
|
|
|
|
die_errno("%s", msg);
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int chk_positive(int result, char *msg)
|
|
|
|
int chk_positive(int result, char *msg)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (result <= 0)
|
|
|
|
if (result <= 0)
|
|
|
|
die("%s: %s", msg, strerror(errno));
|
|
|
|
die_errno("%s", msg);
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int chk_non_negative(int result, char *msg)
|
|
|
|
int chk_non_negative(int result, char *msg)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (result < 0)
|
|
|
|
if (result < 0)
|
|
|
|
die("%s: %s", msg, strerror(errno));
|
|
|
|
die_errno("%s", msg);
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -468,8 +468,7 @@ int cgit_open_filter(struct cgit_filter *filter)
|
|
|
|
chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO),
|
|
|
|
chk_non_negative(dup2(filter->pipe_fh[0], STDIN_FILENO),
|
|
|
|
"Unable to use pipe as STDIN");
|
|
|
|
"Unable to use pipe as STDIN");
|
|
|
|
execvp(filter->cmd, filter->argv);
|
|
|
|
execvp(filter->cmd, filter->argv);
|
|
|
|
die("Unable to exec subprocess %s: %s (%d)", filter->cmd,
|
|
|
|
die_errno("Unable to exec subprocess %s", filter->cmd);
|
|
|
|
strerror(errno), errno);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
close(filter->pipe_fh[0]);
|
|
|
|
close(filter->pipe_fh[0]);
|
|
|
|
chk_non_negative(dup2(filter->pipe_fh[1], STDOUT_FILENO),
|
|
|
|
chk_non_negative(dup2(filter->pipe_fh[1], STDOUT_FILENO),
|
|
|
|