[Freeipa-devel] [PATCH] fix memleaks

Alexander Bokovoy abokovoy at redhat.com
Fri Dec 2 14:04:31 UTC 2011


On Tue, 29 Nov 2011, Simo Sorce wrote:
> Found a couple of memleaks while reviewing code.
> 
> Attached.
> 
> Simo.
> 
> -- 
> Simo Sorce * Red Hat, Inc * New York

> >From 70840691e48e1ac89002499c08a9dd4fdcae7c50 Mon Sep 17 00:00:00 2001
> From: Simo Sorce <ssorce at redhat.com>
> Date: Sun, 20 Nov 2011 20:50:11 -0500
> Subject: [PATCH] ipa-kdb: fix memleaks in ipa_kdb_mspac.c
> 
> ---
>  daemons/ipa-kdb/ipa_kdb_mspac.c |   13 +++++++------
>  1 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/daemons/ipa-kdb/ipa_kdb_mspac.c b/daemons/ipa-kdb/ipa_kdb_mspac.c
> index cce1ca9060f0e03d525bb87d843bdd5811e9d20b..0c0da75ca8dbedf12e39e8ec5d87bfd4cd485d4a 100644
> --- a/daemons/ipa-kdb/ipa_kdb_mspac.c
> +++ b/daemons/ipa-kdb/ipa_kdb_mspac.c
> @@ -466,7 +466,7 @@ static krb5_error_code ipadb_get_pac(krb5_context kcontext,
>      TALLOC_CTX *tmpctx;
>      struct ipadb_e_data *ied;
>      struct ipadb_context *ipactx;
> -    LDAPMessage *results;
> +    LDAPMessage *results = NULL;
>      LDAPMessage *lentry;
>      DATA_BLOB pac_data;
>      krb5_data data;
> @@ -479,11 +479,6 @@ static krb5_error_code ipadb_get_pac(krb5_context kcontext,
>          return KRB5_KDB_DBNOTINITED;
>      }
>  
> -    tmpctx = talloc_new(NULL);
> -    if (!tmpctx) {
> -        return ENOMEM;
> -    }
> -
>      ied = (struct ipadb_e_data *)client->e_data;
>      if (ied->magic != IPA_E_DATA_MAGIC) {
>          return EINVAL;
> @@ -493,6 +488,11 @@ static krb5_error_code ipadb_get_pac(krb5_context kcontext,
>          return 0;
>      }
>  
> +    tmpctx = talloc_new(NULL);
> +    if (!tmpctx) {
> +        return ENOMEM;
> +    }
> +
>      memset(&pac_info, 0, sizeof(pac_info));
>      pac_info.logon_info.info = talloc_zero(tmpctx, struct PAC_LOGON_INFO);
>      if (!tmpctx) {
Here is an issue -- you are allocating off tmpctx which is not empty 
here (we checked it right above) but then you are checking tmpctx 
rather than pac_info.logon_info.info.

It is an older error but needs to be fixed as well.

Also please name the patch file according to 
https://fedorahosted.org/freeipa/wiki/PatchFormat :)

-- 
/ Alexander Bokovoy




More information about the Freeipa-devel mailing list