Date: Thu, 1 May 2003 00:20:26 -0700 From: Kris Kennaway <kris@obsecurity.org> To: "Tim J. Robbins" <tjr@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs ffs_vfsops.c Message-ID: <20030501072026.GA87518@rot13.obsecurity.org> In-Reply-To: <200305010642.h416g0sr018829@repoman.freebsd.org> References: <200305010642.h416g0sr018829@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 30, 2003 at 11:42:00PM -0700, Tim J. Robbins wrote: > tjr 2003/04/30 23:42:00 PDT >=20 > FreeBSD src repository >=20 > Modified files: > sys/ufs/ffs ffs_vfsops.c=20 > Log: > Do not attempt to free NULL dinodes (i_din1 or i_din2) in ffs_ifree(). > These fields can be left as NULL if ffs_vget() allocates an inode but > fails before the dinode memory has been allocated. There are two cases > when this can occur: when we lose a race and another process has added > the inode to the hash, and when reading the inode off disk fails. > =20 > The bug was observed by Kris on one of the package-building machines. > See http://marc.theaimsgroup.com/?l=3Dfreebsd-current&m=3D1051727310134= 11&w=3D2 > In Kris's case, it was the bread() that failed because of a disk error. > =20 > The alternative to this patch is to ensure that ffs_vget() does not call > vput() when the inode that hasn't been properly initialised. Thanks! Kris --1yeeQ81UyVL57Vl7 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+sMq6Wry0BWjoQKURAi3UAJ4szrRlT0NlcpCXkyaM0x2cCSl9xACeNPC0 OxHhibHylfWUH1d0D8pjjf0= =hrAX -----END PGP SIGNATURE----- --1yeeQ81UyVL57Vl7--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030501072026.GA87518>