[PATCH master] Fix leak in source3/passdb/machine_account_secrets.c

Michele Baldessari michele at acksyn.org
Wed Sep 5 11:44:05 MDT 2012


commit 63ac8088d13f2e8a550757b978a79d881c2a4760
Author: Michele Baldessari <michele at acksyn.org>
Date:   Wed Sep 5 15:31:51 2012 +0200

    Free protect_ids in secret_store_domain_sid() as the caller of fetch_secrets() must free the result in order to not leak memory.

diff --git a/source3/passdb/machine_account_secrets.c b/source3/passdb/machine_account_secrets.c
index 300455a..70d7106 100644
--- a/source3/passdb/machine_account_secrets.c
+++ b/source3/passdb/machine_account_secrets.c
@@ -101,9 +101,11 @@ bool secrets_store_domain_sid(const char *domain, const struct dom_sid  *sid)
 		if (strncmp(protect_ids, "TRUE", 4)) {
 			DEBUG(0, ("Refusing to store a Domain SID, "
 				  "it has been marked as protected!\n"));
+			SAFE_FREE(protect_ids);
 			return false;
 		}
 	}
+	SAFE_FREE(protect_ids);
 #endif
 
 	ret = secrets_store(domain_sid_keystr(domain), sid, sizeof(struct dom_sid ));


More information about the samba-technical mailing list