[ldns-users] ldns_buffer_free() function bug?
W.C.A. Wijngaards
wouter at NLnetLabs.nl
Mon Sep 6 14:18:07 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Zbynek,
The prototype is fine, this is what a *free() function is expected to
be. The LDNS_FREE macro sets its argument to NULL for debugging and
cleanliness reasons, so that use-after-free is detected very quickly.
It is not necessary to change the prototype for ldns_buffer_free for
that, nor is it really necessary to set this variable to NULL.
Best regards,
Wouter
On 08/26/2010 11:04 AM, Zbynek Michl wrote:
> Hi,
>
> I have a question about ldns_buffer_free() function. Its prototype is
>
> void ldns_buffer_free(ldns_buffer *buffer);
>
> but shouldn't it be
>
> void ldns_buffer_free(ldns_buffer **buffer);
>
> (pointer to pointer)?
>
> Because using LDNS_FREE macro only memory is freed, but original pointer
> passed to the function remains at its original address (is not set to
> NULL). Currently only local copy of that pointer is set to NULL.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
iEYEARECAAYFAkyE+B8ACgkQkDLqNwOhpPhNJwCdFPtSl0z1CoeCW5oz4tsr6Qx+
y2wAmwVvUg/QM8AXOq4lYD7HY9pH3Vab
=f6Ie
-----END PGP SIGNATURE-----
More information about the ldns-users
mailing list