summaryrefslogtreecommitdiffstats
path: root/src/responder/ssh
diff options
context:
space:
mode:
Diffstat (limited to 'src/responder/ssh')
-rw-r--r--src/responder/ssh/sshsrv.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/responder/ssh/sshsrv.c b/src/responder/ssh/sshsrv.c
index 80a558b52..fe6956aba 100644
--- a/src/responder/ssh/sshsrv.c
+++ b/src/responder/ssh/sshsrv.c
@@ -109,7 +109,7 @@ int ssh_process_init(TALLOC_CTX *mem_ctx,
&ssh_dp_interface,
&ssh_ctx->rctx);
if (ret != EOK) {
- return ret;
+ goto fail;
}
ssh_ctx->rctx->pvt_ctx = ssh_ctx;
@@ -121,7 +121,7 @@ int ssh_process_init(TALLOC_CTX *mem_ctx,
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE,
("Failed to set up automatic reconnection\n"));
- return ret;
+ goto fail;
}
for (iter = ssh_ctx->rctx->be_conns; iter; iter = iter->next) {
@@ -139,7 +139,7 @@ int ssh_process_init(TALLOC_CTX *mem_ctx,
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE, ("Error reading from confdb (%d) [%s]\n",
ret, strerror(ret)));
- return ret;
+ goto fail;
}
/* Get ssh_known_hosts_timeout option */
@@ -150,12 +150,16 @@ int ssh_process_init(TALLOC_CTX *mem_ctx,
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE, ("Error reading from confdb (%d) [%s]\n",
ret, strerror(ret)));
- return ret;
+ goto fail;
}
DEBUG(SSSDBG_TRACE_FUNC, ("SSH Initialization complete\n"));
return EOK;
+
+fail:
+ talloc_free(ssh_ctx);
+ return ret;
}
int main(int argc, const char *argv[])