summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/responder/nss/nsssrv_cmd.c17
-rw-r--r--src/tests/cmocka/test_nss_srv.c1
2 files changed, 11 insertions, 7 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index b8bd6425e..d6ac9dc28 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -5453,13 +5453,16 @@ static int nss_cmd_getbysid(enum sss_cli_command cmd, struct cli_ctx *cctx)
}
ret = nss_check_well_known_sid(cmdctx);
- if (ret != ENOENT) {
- if (ret == EOK) {
- DEBUG(SSSDBG_TRACE_ALL, "SID [%s] is a Well-Known SID.\n",
- cmdctx->secid);
- } else {
- DEBUG(SSSDBG_OP_FAILURE, "nss_check_well_known_sid failed.\n");
- }
+ switch (ret) {
+ case EOK:
+ DEBUG(SSSDBG_TRACE_ALL, "SID [%s] is a Well-Known SID.\n", sid_str);
+ /* message is already send and cmdctx is freed, we can just return */
+ return EOK;
+ break;
+ case ENOENT:
+ break;
+ default:
+ DEBUG(SSSDBG_OP_FAILURE, "nss_check_well_known_sid failed.\n");
goto done;
}
diff --git a/src/tests/cmocka/test_nss_srv.c b/src/tests/cmocka/test_nss_srv.c
index 6bfbd574a..f05b55e46 100644
--- a/src/tests/cmocka/test_nss_srv.c
+++ b/src/tests/cmocka/test_nss_srv.c
@@ -136,6 +136,7 @@ void __wrap_sss_cmd_done(struct cli_ctx *cctx, void *freectx)
nss_test_ctx->tctx->error = check_cb(sss_packet_get_status(packet),
body, blen);
nss_test_ctx->tctx->done = true;
+ talloc_free(freectx);
}
enum sss_cli_command __wrap_sss_packet_get_cmd(struct sss_packet *packet)