diff options
author | Stef Walter <stefw@gnome.org> | 2012-04-24 11:32:04 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2012-05-01 14:22:50 -0400 |
commit | c8a124ac1b03d83016bda02cad5a369ce6fb1cd7 (patch) | |
tree | 9f5ea0df345b3ae8008d1a3cd6c3398dfc67bf13 | |
parent | 24ba5b87c9a2c01deddc9be867e4951e2a397146 (diff) | |
download | sssd-c8a124ac1b03d83016bda02cad5a369ce6fb1cd7.tar.gz sssd-c8a124ac1b03d83016bda02cad5a369ce6fb1cd7.tar.bz2 sssd-c8a124ac1b03d83016bda02cad5a369ce6fb1cd7.zip |
execv, excvp and exec_child never return EOK
* So don't need to handle that case
-rw-r--r-- | src/providers/ipa/ipa_dyndns.c | 8 | ||||
-rw-r--r-- | src/providers/ldap/sdap_child_helpers.c | 8 | ||||
-rw-r--r-- | src/util/child_common.c | 12 | ||||
-rw-r--r-- | src/util/child_common.h | 1 |
4 files changed, 11 insertions, 18 deletions
diff --git a/src/providers/ipa/ipa_dyndns.c b/src/providers/ipa/ipa_dyndns.c index 71fc27bc..4224919b 100644 --- a/src/providers/ipa/ipa_dyndns.c +++ b/src/providers/ipa/ipa_dyndns.c @@ -1015,11 +1015,9 @@ fork_nsupdate_send(struct ipa_nsupdate_ctx *ctx) } errno = 0; - ret = execv(NSUPDATE_PATH, args); - if(ret == -1) { - err = errno; - DEBUG(1, ("execv failed [%d][%s].\n", err, strerror(err))); - } + execv(NSUPDATE_PATH, args); + err = errno; + DEBUG(SSSDBG_CRIT_FAILURE, ("execv failed [%d][%s].\n", err, strerror(err))); return NULL; } diff --git a/src/providers/ldap/sdap_child_helpers.c b/src/providers/ldap/sdap_child_helpers.c index 704c89ec..eeb5e5f0 100644 --- a/src/providers/ldap/sdap_child_helpers.c +++ b/src/providers/ldap/sdap_child_helpers.c @@ -107,11 +107,9 @@ static errno_t sdap_fork_child(struct tevent_context *ev, err = exec_child(child, pipefd_to_child, pipefd_from_child, LDAP_CHILD, ldap_child_debug_fd); - if (err != EOK) { - DEBUG(1, ("Could not exec LDAP child: [%d][%s].\n", - err, strerror(err))); - return err; - } + DEBUG(SSSDBG_CRIT_FAILURE, ("Could not exec LDAP child: [%d][%s].\n", + err, strerror(err))); + return err; } else if (pid > 0) { /* parent */ child->pid = pid; child->read_from_child_fd = pipefd_from_child[0]; diff --git a/src/util/child_common.c b/src/util/child_common.c index 05f00b0f..5f0b2659 100644 --- a/src/util/child_common.c +++ b/src/util/child_common.c @@ -695,14 +695,10 @@ errno_t exec_child(TALLOC_CTX *mem_ctx, return ret; } - ret = execv(binary, argv); - if (ret == -1) { - err = errno; - DEBUG(1, ("execv failed [%d][%s].\n", err, strerror(err))); - return err; - } - - return EOK; + execv(binary, argv); + err = errno; + DEBUG(SSSDBG_OP_FAILURE, ("execv failed [%d][%s].\n", err, strerror(err))); + return err; } void child_cleanup(int readfd, int writefd) diff --git a/src/util/child_common.h b/src/util/child_common.h index 1e9f1b6c..237969f2 100644 --- a/src/util/child_common.h +++ b/src/util/child_common.h @@ -100,6 +100,7 @@ void child_sig_handler(struct tevent_context *ev, struct tevent_signal *sige, int signum, int count, void *__siginfo, void *pvt); +/* Never returns EOK, ether returns an error, or doesn't return on success */ errno_t exec_child(TALLOC_CTX *mem_ctx, int *pipefd_to_child, int *pipefd_from_child, const char *binary, int debug_fd); |