diff options
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 17 | ||||
-rw-r--r-- | src/tests/cmocka/test_nss_srv.c | 1 |
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) |