aboutsummaryrefslogtreecommitdiff
path: root/src/progman.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2014-12-27 00:46:32 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2014-12-27 00:51:54 +0200
commitcb8b9461907373485acabb90bc1cad5263abc8b8 (patch)
tree63c9a28993791d8b836685a6d01c608ba604e0d3 /src/progman.c
parenta1d8a2d3662cde5f1d0ec411e372c3614bb49a6d (diff)
downloadpies-cb8b9461907373485acabb90bc1cad5263abc8b8.tar.gz
pies-cb8b9461907373485acabb90bc1cad5263abc8b8.tar.bz2
Minor fixes.
* lib/proctitle.c (mf_proctitle_format): Check return from vasprintf instead of checking the return pointer. * src/inetd-bi.c: Check return values from write where reasonable. * src/progman.c (redirect_to_file): Check return from chown. (close_fds): Fix coredump (upper boundary was wrong). (open_redirector, progman_dump_stats): Check return values. * src/sysvinit.c (sysvinit_setenv): Remove unused variable. * src/userprivs.c (str_eq, str_dispose): Remove unused functions. * src/utmp.c: Check return values.
Diffstat (limited to 'src/progman.c')
-rw-r--r--src/progman.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/progman.c b/src/progman.c
index c9741d5..e666535 100644
--- a/src/progman.c
+++ b/src/progman.c
@@ -393,7 +393,13 @@ redirect_to_file (struct prog *master, int stream)
/* Fix file ownership */
if (master->v.p.comp->privs.user
&& (pw = getpwnam (master->v.p.comp->privs.user)) != NULL)
- chown (master->v.p.comp->redir[stream].v.file, pw->pw_uid, pw->pw_gid);
+ {
+ if (chown (master->v.p.comp->redir[stream].v.file,
+ pw->pw_uid, pw->pw_gid))
+ logmsg (LOG_ERR, "chown %s: %s",
+ master->v.p.comp->redir[stream].v.file,
+ strerror (errno));
+ }
return fd;
}
@@ -402,7 +408,7 @@ close_fds (fd_set *fdset)
{
int i;
- for (i = getmaxfd (); i >= 0; i--)
+ for (i = FD_SETSIZE-1; i >= 0; i--)
{
if (fdset && FD_ISSET (i, fdset))
continue;
@@ -441,7 +447,12 @@ open_redirector (struct prog *master, int stream)
break;
}
- pipe (p);
+ if (pipe (p))
+ {
+ logmsg (LOG_CRIT, "pipe: %s", strerror (errno));
+ return -1;
+ }
+
switch (pid = fork ())
{
case 0:
@@ -2445,8 +2456,7 @@ progman_dump_stats (const char *filename)
struct prog *prog;
char *tmpfile = NULL;
- asprintf (&tmpfile, "%s.%lu", filename, (unsigned long) getpid ());
- if (!tmpfile)
+ if (asprintf (&tmpfile, "%s.%lu", filename, (unsigned long) getpid ()) == -1)
{
logmsg (LOG_ERR, "%s", strerror (ENOMEM));
return;
@@ -2490,6 +2500,9 @@ progman_dump_stats (const char *filename)
case pies_comp_pass_fd:
fbuf[fidx++] = 'P';
+
+ default:
+ break;
}
switch (prog->v.p.status)

Return to:

Send suggestions and report system problems to the System administrator.