[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