diff options
author | Günther Deschner <gd@samba.org> | 2006-09-26 16:27:18 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:14:47 -0500 |
commit | f7633eca1824f7a5bda733e6753d5d1f850f78c3 (patch) | |
tree | 05a7947d0e5d469fb8e95619dc48cc7300a1a80a /source3/libads/gpo_util.c | |
parent | bf6962b5e83a4dec0b4d9ec3f14bdde26d7b0d47 (diff) | |
download | samba-f7633eca1824f7a5bda733e6753d5d1f850f78c3.tar.gz samba-f7633eca1824f7a5bda733e6753d5d1f850f78c3.tar.bz2 samba-f7633eca1824f7a5bda733e6753d5d1f850f78c3.zip |
r18923: Fix more memleaks.
Guenther
(This used to be commit ecb632a1534d5178602b9143bb17712559fe2e4f)
Diffstat (limited to 'source3/libads/gpo_util.c')
-rw-r--r-- | source3/libads/gpo_util.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source3/libads/gpo_util.c b/source3/libads/gpo_util.c index 714dcacb8b..a30df6e9eb 100644 --- a/source3/libads/gpo_util.c +++ b/source3/libads/gpo_util.c @@ -465,8 +465,6 @@ ADS_STATUS gpo_password_policy(ADS_STRUCT *ads, LDAPMessage *res = NULL; uint32 uac; - return ADS_ERROR_NT(NT_STATUS_NOT_IMPLEMENTED); - filter = talloc_asprintf(mem_ctx, "(&(objectclass=user)(sAMAccountName=%s))", hostname); if (filter == NULL) { return ADS_ERROR(LDAP_NO_MEMORY); @@ -481,19 +479,24 @@ ADS_STATUS gpo_password_policy(ADS_STRUCT *ads, } if (ads_count_replies(ads, res) != 1) { + ads_msgfree(ads, res); return ADS_ERROR(LDAP_NO_SUCH_OBJECT); } dn = ads_get_dn(ads, res); if (dn == NULL) { + ads_msgfree(ads, res); return ADS_ERROR(LDAP_NO_MEMORY); } if (!ads_pull_uint32(ads, res, "userAccountControl", &uac)) { + ads_msgfree(ads, res); ads_memfree(ads, dn); return ADS_ERROR(LDAP_NO_MEMORY); } + ads_msgfree(ads, res); + if (!(uac & UF_WORKSTATION_TRUST_ACCOUNT)) { ads_memfree(ads, dn); return ADS_ERROR(LDAP_NO_SUCH_OBJECT); @@ -505,15 +508,15 @@ ADS_STATUS gpo_password_policy(ADS_STRUCT *ads, return status; } + ads_memfree(ads, dn); + status = gpo_process_gpo_list(ads, mem_ctx, &gpo_list, cse_gpo_name_to_guid_string("Security"), GPO_LIST_FLAG_MACHINE); if (!ADS_ERR_OK(status)) { - ads_memfree(ads, dn); return status; } - ads_memfree(ads, dn); return ADS_ERROR(LDAP_SUCCESS); } |