summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/providers/krb5/krb5_child.c26
-rw-r--r--src/providers/ldap/ldap_child.c1
2 files changed, 16 insertions, 11 deletions
diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
index c243d063b..81f86bbe8 100644
--- a/src/providers/krb5/krb5_child.c
+++ b/src/providers/krb5/krb5_child.c
@@ -1999,14 +1999,9 @@ int main(int argc, const char *argv[])
DEBUG_INIT(debug_level);
- kr = talloc_zero(NULL, struct krb5_req);
- if (kr == NULL) {
- DEBUG(SSSDBG_CRIT_FAILURE, "talloc failed.\n");
- exit(-1);
- }
-
- debug_prg_name = talloc_asprintf(kr, "[sssd[krb5_child[%d]]]", getpid());
+ debug_prg_name = talloc_asprintf(NULL, "[sssd[krb5_child[%d]]]", getpid());
if (!debug_prg_name) {
+ debug_prg_name = "[sssd[krb5_child]]";
DEBUG(SSSDBG_CRIT_FAILURE, "talloc_asprintf failed.\n");
ret = ENOMEM;
goto done;
@@ -2021,6 +2016,14 @@ int main(int argc, const char *argv[])
DEBUG(SSSDBG_TRACE_FUNC, "krb5_child started.\n");
+ kr = talloc_zero(NULL, struct krb5_req);
+ if (kr == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, "talloc failed.\n");
+ ret = ENOMEM;
+ goto done;
+ }
+ talloc_steal(kr, debug_prg_name);
+
ret = k5c_recv_data(kr, STDIN_FILENO, &offline);
if (ret != EOK) {
goto done;
@@ -2079,13 +2082,14 @@ int main(int argc, const char *argv[])
}
done:
- krb5_cleanup(kr);
- talloc_free(kr);
if (ret == EOK) {
DEBUG(SSSDBG_TRACE_FUNC, "krb5_child completed successfully\n");
- exit(0);
+ ret = 0;
} else {
DEBUG(SSSDBG_CRIT_FAILURE, "krb5_child failed!\n");
- exit(-1);
+ ret = -1;
}
+ krb5_cleanup(kr);
+ talloc_free(kr);
+ exit(ret);
}
diff --git a/src/providers/ldap/ldap_child.c b/src/providers/ldap/ldap_child.c
index 34f23ec80..0e5e1614a 100644
--- a/src/providers/ldap/ldap_child.c
+++ b/src/providers/ldap/ldap_child.c
@@ -462,6 +462,7 @@ int main(int argc, const char *argv[])
debug_prg_name = talloc_asprintf(NULL, "[sssd[ldap_child[%d]]]", getpid());
if (!debug_prg_name) {
+ debug_prg_name = "[sssd[ldap_child]]";
DEBUG(SSSDBG_CRIT_FAILURE, "talloc_asprintf failed.\n");
goto fail;
}