From proff@profane.iq.org  Fri Jan 31 10:10:23 1997
Received: from profane.iq.org (profane.iq.org [203.4.184.217])
          by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id KAA04288;
          Fri, 31 Jan 1997 10:09:54 -0800 (PST)
Received: (from proff@localhost)
          by profane.iq.org (8.8.4/8.8.2) id FAA02678;
          Sat, 1 Feb 1997 05:11:20 +1100 (EST)
Message-Id: <199701311811.FAA02678@profane.iq.org>
Date: Sat, 1 Feb 1997 05:11:20 +1100 (EST)
From: Julian Assange <proff@iq.org>
Reply-To: proff@iq.org
To: FreeBSD-gnats-submit@freebsd.org, dyson@freebsd.org
Subject: <Synopsis of the problem (one line)> vnode_if.h has no protection against multiple reference
X-Send-Pr-Version: 3.2

>Number:         2629
>Category:       misc
>Synopsis:       vnode_if.h has no protection against multiple reference
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 31 10:20:01 PST 1997
>Closed-Date:    Sat Feb 22 22:36:23 PST 1997
>Last-Modified:  Sat Feb 22 22:37:28 PST 1997
>Originator:     Julian Assange
>Release:        FreeBSD 3.0-CURRENT i386
>Organization:
>Environment:

	

>Description:

vnode_if.h is generated during the make phase by sys/kern/vnode_if.sh. due to the lack
of #ifdef _VNODE_IF_H etc, nasty things happen if vnode_if.h is multiply referenced.

	

>How-To-Repeat:

	

>Fix:
	
	

cd to sys/kern and apply patch. re-config kernel.

Index: vnode_if.sh
===================================================================
RCS file: /usr/src/cvs/src/sys/kern/vnode_if.sh,v
retrieving revision 1.10
diff -u -r1.10 vnode_if.sh
--- vnode_if.sh	1997/01/14 06:44:32	1.10
+++ vnode_if.sh	1997/01/31 16:33:57
@@ -70,6 +70,9 @@
  * Created from @(#)vnode_if.sh	8.1 (Berkeley) 6/10/93
  */
 
+#ifndef _VNODE_IF_H
+#define _VNODE_IF_H
+
 extern struct vnodeop_desc vop_default_desc;
 END_OF_LEADING_COMMENT
 
@@ -397,6 +400,7 @@
 	a.a_bp = bp;
 	return (VCALL((bp)->b_vp, VOFFSET(vop_bwrite), &a));
 }
+#endif /* !_VNODE_IF_H */
 END_OF_SPECIAL_CASES
 
 cat << END_OF_SPECIAL_CASES >> $CFILE
>Release-Note:
>Audit-Trail:

From: Bruce Evans <bde@zeta.org.au>
To: dyson@freebsd.org, FreeBSD-gnats-submit@freebsd.org, proff@iq.org
Cc:  Subject: Re: misc/2629: <Synopsis of the problem (one line)> vnode_if.h has no protection against multiple reference
Date: Sat, 1 Feb 1997 06:18:26 +1100

 >vnode_if.h is generated during the make phase by sys/kern/vnode_if.sh. due to the lack
 >of #ifdef _VNODE_IF_H etc, nasty things happen if vnode_if.h is multiply referenced.
 
 Good things.  It doesn't work.  This tells you that you included
 vnode_if.h from a bogus place (from somewhere other than <sys/vnode.h>).
 
 Please don't use long lines.
 
 Bruce
State-Changed-From-To: open->open 
State-Changed-By: fenner 
State-Changed-When: Sun Feb 2 10:08:36 PST 1997 
State-Changed-Why:  
It didn't.  darn that edit-pr anyway. 
State-Changed-From-To: open->closed 
State-Changed-By: mpp 
State-Changed-When: Sat Feb 22 22:36:23 PST 1997 
State-Changed-Why:  
bde says that you shouldn't include this from anywhere but 
sys/vnode.h, so this is a good thing since you will get 
errors if you include it from somewhere you shouldn't have. 
>Unformatted:
