Date: Sun, 17 Sep 1995 23:40:19 -0700 From: Julian Elischer <julian> To: hackers Subject: why is this not a bug in namei? Message-ID: <199509180640.XAA05368@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
if ((cnp->cn_flags & HASBUF) == 0)
MALLOC(cnp->cn_pnbuf, caddr_t, MAXPATHLEN, M_NAMEI, M_WAITOK);
[....]
if (error) {
free(cnp->cn_pnbuf, M_NAMEI);
ndp->ni_vp = NULL;
return (error);
[...]
if (error) {
FREE(cnp->cn_pnbuf, M_NAMEI);
return (error);
[....] (and more confusingly)
if ((cnp->cn_flags & ISSYMLINK) == 0) {
if ((cnp->cn_flags & (SAVENAME | SAVESTART)) == 0)
FREE(cnp->cn_pnbuf, M_NAMEI);
else
cnp->cn_flags |= HASBUF;
return (0);
}
[....]
FREE(cnp->cn_pnbuf, M_NAMEI);
}
if HASBUF was set, we have freed something we didn't allocate..
(whenever we get an error, by the looks of it..)
luckily I can't actually see anywhere that HASBUF is used
(can anyone?) but it looks wrong to me...
julian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509180640.XAA05368>
