krb5_init_context krb5_parse_name memory leaks

Ken Raeburn raeburn at MIT.EDU
Fri Nov 14 13:32:22 EST 2008


(As an aside, please don't use "reply-to" to select a mailing list for  
a message that isn't related to the message you're "replying" to.  The  
message comes out with headers that say it's following up to that  
message and belongs in the same thread.  I suspect a lot of people use  
threaded views in their mail readers.  If I hadn't been interested in  
following up on "AEAD Encryption API" email when reading email just  
now, I would've skipped right over the whole "thread" including your  
message, which would've been displayed as one line in my mailbox  
summary.  Similarly, if I wanted to reply to some of the AEAD  
discussion just now, I would have examined the thread's messages, and  
still skipped yours as off-topic.)

On Nov 14, 2008, at 11:04, Stephen Ince wrote:
> I do not know if I should post this question here or the general.
> I noticed that I have the kfw-3-2-2-final kerberos api has some memory
> leaks. I am running some purify memory profiling tests. Here is what I
> noticed.
>
>    // memory leak for krb5_parse_name (allocate)
>    if (err = krb5_parse_name(krb5->context, username, &krb5->client)){
>
>   //deallocate
>   if (krb5->client) krb5_free_principal(krb5->context, krb5->client);
>
> [W] MLK: Memory leak of 28 bytes from 1 block allocated in  
> krb5_parse_name
> [KRB5_32.DLL]
>        Distribution of leaked blocks
>                28 bytes from 1 block of 28 bytes (0x003c8af8)
>        Allocation location
>            malloc         [C:\WINDOWS\SYSTEM32\MSVCR71.DLL]
>            krb5_parse_name [C:\OPENLOAD\BIN\KRB5_32.DLL]


On a 32-bit platform, 28 bytes looks like the right size for  
krb5_principal_data.  Maybe principal name components too, but you  
don't indicate what name is being parsed.  However,  
krb5_free_principal does free the principal data structure that it's  
passed.

These little fragments of sources aren't enough for me to figure out  
what's going on (e.g., how do I know the free routines are being  
called?), though I could write a test case of my own and see if maybe  
purify complains about it on Solaris (which is the only platform where  
we've got Purify), or valgrind on Linux/x86, but I can't be sure of  
reproducing the problem you're seeing.  Can you give me a (simple?)  
test case that definitely shows the problem for you?

Ken



More information about the krbdev mailing list