[SSSD] [PATCH] krb5: Use right function to free data
Lukas Slebodnik
lslebodn at redhat.com
Mon Oct 14 12:22:43 UTC 2013
On (14/10/13 12:32), Sumit Bose wrote:
>On Mon, Oct 14, 2013 at 11:16:41AM +0200, Lukas Slebodnik wrote:
>> ehlo,
>>
>> This patch fixes warning reported by clang static analyzer.
>> Simple patch is attached.
>>
>> LS
>
>> From 3c910455b63348e52026d9d61870ed44380e44e2 Mon Sep 17 00:00:00 2001
>> From: Lukas Slebodnik <lslebodn at redhat.com>
>> Date: Mon, 14 Oct 2013 11:08:48 +0200
>> Subject: [PATCH] krb5: Use right function to free data.
>>
>> In function create_empty_cred, krb5_creds was aloocated using calloc,
>> but krb5_free_creds was used to remove this creds in done section.
>> Therefore clang static analyzer repoted this as warning:
>> Potential leak of memory pointed to by 'cred'
>> ---
>> src/providers/krb5/krb5_child.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
>> index 24a1fe1badd682bd9017ee14a5210d6dcacb8376..8c5940ac285109cb45eabd21f399d8df3cc93031 100644
>> --- a/src/providers/krb5/krb5_child.c
>> +++ b/src/providers/krb5/krb5_child.c
>> @@ -424,7 +424,7 @@ static krb5_error_code create_empty_cred(krb5_context ctx, krb5_principal princ,
>>
>> done:
>> if (kerr != 0) {
>> - krb5_free_creds(ctx, cred);
>> + free(cred);
>
>make sense, but please call krb5_free_cred_contents() before to make
>sure all cred content is freed as well.
Nice catch. I didn't realise it.
>
>bye,
>Sumit
>
>> } else {
>> *_cred = cred;
>> }
Updated patch atached.
LS
-------------- next part --------------
>From 3b78c1eb5e5d4f680e3cef20229b0ac189471701 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon, 14 Oct 2013 11:08:48 +0200
Subject: [PATCH] krb5: Use right function to free data.
In function create_empty_cred, krb5_creds was aloocated using calloc,
but krb5_free_creds was used to remove this creds in done section.
Therefore clang static analyzer repoted this as warning:
Potential leak of memory pointed to by 'cred'
---
src/providers/krb5/krb5_child.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/providers/krb5/krb5_child.c b/src/providers/krb5/krb5_child.c
index 24a1fe1badd682bd9017ee14a5210d6dcacb8376..72a7f9c959551049d4fac48ad0c0966486e030be 100644
--- a/src/providers/krb5/krb5_child.c
+++ b/src/providers/krb5/krb5_child.c
@@ -424,7 +424,8 @@ static krb5_error_code create_empty_cred(krb5_context ctx, krb5_principal princ,
done:
if (kerr != 0) {
- krb5_free_creds(ctx, cred);
+ krb5_free_cred_contents(ctx, cred);
+ free(cred);
} else {
*_cred = cred;
}
--
1.8.3.1
More information about the sssd-devel
mailing list