Date: Fri, 11 Mar 2005 14:31:15 -0500 From: Stephan Uphoff <ups@tree.com> To: Sam Leffler <sam@errno.com> Cc: fs@freebsd.org Subject: Re: dirhash potential bug Message-ID: <1110569475.29804.23911.camel@palm> In-Reply-To: <4231D417.9060705@errno.com> References: <4231D417.9060705@errno.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2005-03-11 at 12:23, Sam Leffler wrote: > Coverity's analysis tool claims there might be a null bp dereferenced in > ufsdirhash_lookup. Attached is a patch to add a KASSERT but it'd be > good for someone more familiar with the code to check if a change is > required. > > Sam In my opinion the change is not required. Not knowing how the tool works my guess is that the function pointer um_blkatoff used in UFS_BLKATOFF makes it impossible for the tool to prove that bp will always be non-zero at this point. Can you replace UFS_BLKATOFF(vp, (off_t)blkoff, NULL, &bp) with ffs_blkatoff(vp, (off_t)blkoff, NULL, &bp) and rerun the test? Stephan > > ______________________________________________________________________ > ==== //depot/projects/wifi/sys/ufs/ufs/ufs_dirhash.c#3 - /usr/sam/wifi/sys/ufs/ufs/ufs_dirhash.c ==== > @@ -420,6 +420,7 @@ > if (UFS_BLKATOFF(vp, (off_t)blkoff, NULL, &bp) != 0) > return (EJUSTRETURN); > } > + KASSERT(bp != NULL, ("no buf?")); > dp = (struct direct *)(bp->b_data + (offset & bmask)); > if (dp->d_reclen == 0 || dp->d_reclen > > DIRBLKSIZ - (offset & (DIRBLKSIZ - 1))) { > > > ______________________________________________________________________ > _______________________________________________ > freebsd-fs@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1110569475.29804.23911.camel>