On Mon, 14 Mar 2005 <[EMAIL PROTECTED]> wrote: > Hi, I am trying to debug a memory leak in executing gzipped binaries > when the parameter list is too long. The function in question is > inflate_dynamic(). > > /* decompress until an end-of-block code */ > if (inflate_codes(glbl, tl, td, bl, bd)) > return 1; > > /* free the decoding tables, return */ > huft_free(glbl, tl); > huft_free(glbl, td); > return 0; > > > Should this be re-written as: > > i = inflate_codes(glbl, tl, td, bl, bd) ? 1 : 0; > > /* free the decoding tables, return */ > huft_free(glbl, tl); > huft_free(glbl, td); > > return (i); > > so that the Huffman tables are always freed.
_If_ I remember correctly, if inflate_dynamic() returns a non-zero code it means that the decompression failed and the program itself quits right away, no memory leak. Or am I missing something? marco -- Very graphic, classical but efficient. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"