[ECOS] Bug in getifaddrs() - allocation of buffer
Andrew Lunn
andrew@lunn.ch
Tue Sep 16 16:37:00 GMT 2003
On Tue, Sep 16, 2003 at 08:18:11AM -0700, Jay Foster wrote:
> The function getifaddrs() in file packages/net/common/current/src/ifaddrs.c
> has a couple of bugs in it.
>
> On lines 151 and 157, it calls "free(buf)", but "buf" is a local buffer
> allocated on the stack. These should either be removed, or change the
> allocation of "buf" to be malloced. These free() calls seem to indicate
> that at one time, the "buf" buffer was malloced, which makes sense, since
> it is a 1K byte buffer. This seems a bit large for an auto stack variable.
I agree, it should be malloc'd. Its been broken since at least
20-May-02!
>
> On lines 172 through 177 (CYGPKG_NET_INET6), it returns from the function
> (error case), but does not free the malloced buffer "data". Need to add
> a call to "free(data);" here. Also, if the "buf" buffer allocation is
> changed to be malloced, instead of on the stack, then add a "free(buf);"
> here too.
Agreed.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss
mailing list