From 3e94cea9351b541dfeac13fed925e0794488f0c6 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Nov 07 2013 10:16:03 +0000 Subject: free idmapped binary SIDs correctly Resolves: https://fedorahosted.org/sssd/ticket/2133 --- diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index ada2b64..564d66f 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -4334,7 +4334,7 @@ static int nss_cmd_getbysid(enum sss_cli_command cmd, struct cli_ctx *cctx) /* If the body isn't a SID, fail */ err = sss_idmap_sid_to_bin_sid(nctx->idmap_ctx, sid_str, &bin_sid, &bin_sid_length); - talloc_free(bin_sid); + sss_idmap_free_bin_sid(nctx->idmap_ctx, bin_sid); if (err != IDMAP_SUCCESS) { DEBUG(SSSDBG_OP_FAILURE, ("sss_idmap_sid_to_bin_sid failed for [%s].\n", body)); diff --git a/src/tests/sss_idmap-tests.c b/src/tests/sss_idmap-tests.c index 888be82..f5ec683 100644 --- a/src/tests/sss_idmap-tests.c +++ b/src/tests/sss_idmap-tests.c @@ -242,7 +242,7 @@ START_TEST(idmap_test_bin_sid2uid) "sss_idmap_bin_sid_to_unix returned wrong id, " "got [%d], expected [%d].", id, 1000 + IDMAP_RANGE_MIN); - talloc_free(bin_sid); + sss_idmap_free_bin_sid(idmap_ctx, bin_sid); } END_TEST @@ -331,7 +331,7 @@ START_TEST(idmap_test_uid2bin_sid) "expected [%s], got [%s].", "S-1-5-21-1-2-3-1000", sid); sss_idmap_free_sid(idmap_ctx, sid); - talloc_free(bin_sid); + sss_idmap_free_bin_sid(idmap_ctx, bin_sid); } END_TEST @@ -359,7 +359,7 @@ START_TEST(idmap_test_bin_sid2dom_sid) "Binary SIDs do not match."); sss_idmap_free_dom_sid(idmap_ctx, dom_sid); - talloc_free(new_bin_sid); + sss_idmap_free_bin_sid(idmap_ctx, new_bin_sid); } END_TEST @@ -437,7 +437,7 @@ START_TEST(idmap_test_sid2bin_sid) fail_unless(memcmp(bin_sid, test_bin_sid, test_bin_sid_length) == 0, "Binary SIDs do not match"); - talloc_free(bin_sid); + sss_idmap_free_bin_sid(idmap_ctx, bin_sid); } END_TEST @@ -496,7 +496,7 @@ START_TEST(idmap_test_smb_sid2bin_sid) fail_unless(memcmp(bin_sid, test_bin_sid, test_bin_sid_length) == 0, "Binary SIDs do not match."); - talloc_free(bin_sid); + sss_idmap_free_bin_sid(idmap_ctx, bin_sid); } END_TEST