summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@gnome.org>2012-04-24 11:32:04 +0200
committerStephen Gallagher <sgallagh@redhat.com>2012-05-01 14:22:50 -0400
commitc8a124ac1b03d83016bda02cad5a369ce6fb1cd7 (patch)
tree9f5ea0df345b3ae8008d1a3cd6c3398dfc67bf13
parent24ba5b87c9a2c01deddc9be867e4951e2a397146 (diff)
downloadsssd-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.c8
-rw-r--r--src/providers/ldap/sdap_child_helpers.c8
-rw-r--r--src/util/child_common.c12
-rw-r--r--src/util/child_common.h1
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);