summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorMichal Zidek <mzidek@redhat.com>2013-04-03 17:04:41 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-04-05 17:22:29 +0200
commite391eb27c711a5d51f7a5ad92928212fdcb3133a (patch)
treefcd26f591b4e83f269971abe2f6a0310696c646d /src/tools
parent4d09e8abf9f4306d3d6add88ee9100373c421c74 (diff)
downloadsssd-e391eb27c711a5d51f7a5ad92928212fdcb3133a.tar.gz
sssd-e391eb27c711a5d51f7a5ad92928212fdcb3133a.tar.xz
sssd-e391eb27c711a5d51f7a5ad92928212fdcb3133a.zip
Check for waitpid failure at wrong place.
Coverity bugs. https://fedorahosted.org/sssd/ticket/1865
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/sss_userdel.c8
-rw-r--r--src/tools/tools_util.c11
2 files changed, 9 insertions, 10 deletions
diff --git a/src/tools/sss_userdel.c b/src/tools/sss_userdel.c
index 2cf77596b..ac87a7360 100644
--- a/src/tools/sss_userdel.c
+++ b/src/tools/sss_userdel.c
@@ -101,15 +101,15 @@ static int kick_user(struct tools_ctx *tctx)
}
while((child_pid = waitpid(pid, &status, 0)) > 0) {
- if (child_pid == -1) {
- DEBUG(1, ("waitpid failed\n"));
- return errno;
- }
if (WIFEXITED(status)) {
break;
}
}
+ if (child_pid == -1) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("waitpid failed\n"));
+ return errno;
+ }
}
return EOK;
diff --git a/src/tools/tools_util.c b/src/tools/tools_util.c
index 85164c612..1ad5326e3 100644
--- a/src/tools/tools_util.c
+++ b/src/tools/tools_util.c
@@ -538,12 +538,6 @@ int run_userdel_cmd(struct tools_ctx *tctx)
}
while((child_pid = waitpid(pid, &status, 0)) > 0) {
- if (child_pid == -1) {
- DEBUG(1, ("waitpid failed\n"));
- ret = errno;
- goto done;
- }
-
if (WIFEXITED(status)) {
ret = WEXITSTATUS(status);
if (ret != 0) {
@@ -567,6 +561,11 @@ int run_userdel_cmd(struct tools_ctx *tctx)
goto done;
}
}
+ if (child_pid == -1) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("waitpid failed\n"));
+ ret = errno;
+ goto done;
+ }
}
ret = EOK;