memory leak in inflate.c
Marco Molteni
molter at tin.it
Mon Mar 14 12:45:03 PST 2005
On Mon, 14 Mar 2005 <Vijay.Singh at nokia.com> 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.
More information about the freebsd-hackers
mailing list