From owner-freebsd-hackers Tue Jun 15 19:23:38 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (Postfix) with ESMTP id D7169151A2; Tue, 15 Jun 1999 19:23:36 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id TAA24603; Tue, 15 Jun 1999 19:23:35 -0700 (PDT) (envelope-from dillon) Date: Tue, 15 Jun 1999 19:23:35 -0700 (PDT) From: Matthew Dillon Message-Id: <199906160223.TAA24603@apollo.backplane.com> To: "David E. Cross" , Matthew Jacob , Guido van Rooij , freebsd-hackers@FreeBSD.ORG, peter@FreeBSD.ORG, crossd@cs.rpi.edu Subject: VOP_*() routines, lookup(), and namei() leave garbage pointers on error References: <199906152205.SAA39993@cs.rpi.edu> <199906152323.QAA23668@apollo.backplane.com> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Bleh. More fragility. VOP_*() routines, lookup(), and namei() leave garbage pointers in nameidata and returned-vnode structures when they return an error. They really ought to NULL-out those garbage pointers. It's on my list to fix. It makes it difficult for the NFS code to keep track of its state. That plus the almost total lack of state tracking for the path name component allocation state, which makes it difficult to sanity-check the zfree's. For example, if lookup() returns an error it may leave an invalid ni_dvp pointer in the nameidata. VOP_SYMLINK returns an invalid vp ( all callers of VOP_SYMLINK just ignore it, but that still doesn't make it right ), and namei() also has similar problems when it returns na error. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message