[xmlsec] Re: Load hmac key for signature -- Memory cleanup Question

Aleksey Sanin aleksey at aleksey.com
Wed Nov 3 15:04:26 PST 2004


In your case you do need to destroy:
  1) document
  2) siganture context
  3) key
The order does not matter.

Aleksey

Monica Lau wrote:
> Hi Aleksey,
>  
> Sorry to keep bothering you.  Hopefully, this will be the last time. 
> :-)  I have a question about the memory cleanup after generating the 
> Hmac key and signing the xml document.  I believe the ordering of the 
> memory cleanup matters because I've tried swapping the ordering, and the 
> program hangs/crashes.  Here is the code that doesn't work:
>  
> int SignDoc( ...)
> {
>    /* Generate XML Doc */
>              ...
>  
>    /* Generate Hmac Key (placing the contents of the CreateHmacKey( ) 
> function that you provided here) */
>             ...
>  
>    /* print signed document to memory */
>    xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
>  
>    /* cleanup memory */
>    xmlSecKeyDataDestroy(xmlSecKey_data);
>    xmlSecKeyDestroy(xmlSecKey);
>    xmlFree(xmlbuff);
> 
>    if(dsigCtx != NULL) {
>        xmlSecDSigCtxDestroy(dsigCtx);
>    }
> 
>    if(doc != NULL) {
>        xmlFreeDoc(doc);
>    }
> }
>  
> On the other hand, if I swap the order of the memory clean up steps, 
> then it works great:
>  
>    /* cleanup memory */
>    if(dsigCtx != NULL) {
>        xmlSecDSigCtxDestroy(dsigCtx);
>    }
> 
>    if(doc != NULL) {
>        xmlFreeDoc(doc);
>    }
>  
>    xmlFree(xmlbuff);
>    xmlSecKeyDataDestroy(key_data);
>    xmlSecKeyDestroy(key);
> Question: Is it necessary to call the xmlSecKeyDataDestroy and 
> xmlSecKeyDestroy functions since I am calling xmlSecDSigCtxDestroy?  If 
> it is necessary to destory the keys, then is this the correct order?
>  
>  
> Thanks for your help again,
> Monica
>  
>  
> 
> ------------------------------------------------------------------------
> Do you Yahoo!?
> Check out the new Yahoo! Front Page. www.yahoo.com <http://www.yahoo.com>



More information about the xmlsec mailing list