svn commit: r326362 - in head: share/man/man4 sys/net

Hartmann, O. o.hartmann at walstatt.org
Wed Nov 29 12:42:48 UTC 2017


On Wed, 29 Nov 2017 13:16:28 +0100
Hans Petter Selasky <hps at selasky.org> wrote:

> On 11/29/17 13:16, Hartmann, O. wrote:
> > On Wed, 29 Nov 2017 12:49:19 +0100
> > Hans Petter Selasky <hps at selasky.org> wrote:
> >   
> >> On 11/29/17 11:51, Hartmann, O. wrote:  
> >>> On Wed, 29 Nov 2017 09:40:11 +0000 (UTC)
> >>> Hans Petter Selasky <hselasky at FreeBSD.org> wrote:
> >>>      
> >>>> Author: hselasky
> >>>> Date: Wed Nov 29 09:40:11 2017
> >>>> New Revision: 326362
> >>>> URL: https://svnweb.freebsd.org/changeset/base/326362
> >>>>
> >>>> Log:
> >>>>     Disallow TUN and TAP character device IOCTLs to modify the
> >>>> network device type to any value. This can cause page faults and
> >>>> panics due to accessing uninitialized fields in the "struct
> >>>> ifnet" which are specific to the network device type.
> >>>>     
> >>>>     MFC after:	1 week
> >>>>     Found by:	jau at iki.fi
> >>>>     PR:		223767
> >>>>     Sponsored by:	Mellanox Technologies
> >>>>
> >>>> Modified:
> >>>>     head/share/man/man4/tap.4
> >>>>     head/share/man/man4/tun.4
> >>>>     head/sys/net/if_tap.c
> >>>>     head/sys/net/if_tun.c
> >>>>
> >>>> Modified: head/share/man/man4/tap.4
> >>>> ==============================================================================
> >>>> --- head/share/man/man4/tap.4	Wed Nov 29 09:18:24 2017
> >>>> (r326361) +++ head/share/man/man4/tap.4	Wed Nov 29
> >>>> 09:40:11 2017	(r326362) @@ -1,7 +1,7 @@
> >>>>    .\" $FreeBSD$
> >>>>    .\" Based on PR#2411
> >>>>    .\"
> >>>> -.Dd April 10, 2015
> >>>> +.Dd November 29, 2017
> >>>>    .Dt TAP 4
> >>>>    .Os
> >>>>    .Sh NAME
> >>>> @@ -171,7 +171,14 @@ calls are supported
> >>>>    .In net/if_tap.h ) :
> >>>>    .Bl -tag -width VMIO_SIOCSETMACADDR
> >>>>    .It Dv TAPSIFINFO
> >>>> -Set network interface information (line speed, MTU and type).
> >>>> +Set network interface information (line speed and MTU).
> >>>> +The type must be the same as returned by
> >>>> +.Dv TAPGIFINFO
> >>>> +or set to
> >>>> +.Dv IFT_ETHER
> >>>> +else the
> >>>> +.Xr ioctl 2
> >>>> +call will fail.
> >>>>    The argument should be a pointer to a
> >>>>    .Va struct tapinfo .
> >>>>    .It Dv TAPGIFINFO
> >>>>
> >>>> Modified: head/share/man/man4/tun.4
> >>>> ==============================================================================
> >>>> --- head/share/man/man4/tun.4	Wed Nov 29 09:18:24 2017
> >>>> (r326361) +++ head/share/man/man4/tun.4	Wed Nov 29
> >>>> 09:40:11 2017	(r326362) @@ -2,7 +2,7 @@
> >>>>    .\" $FreeBSD$
> >>>>    .\" Based on PR#2411
> >>>>    .\"
> >>>> -.Dd November 30, 2014
> >>>> +.Dd November 29, 2017
> >>>>    .Dt TUN 4
> >>>>    .Os
> >>>>    .Sh NAME
> >>>> @@ -208,8 +208,15 @@ this stores the internal debugging
> >>>> variable's value in .It Dv TUNSIFINFO
> >>>>    The argument should be a pointer to an
> >>>>    .Vt struct tuninfo
> >>>> -and allows setting the MTU, the type, and the baudrate of the
> >>>> tunnel +and allows setting the MTU and the baudrate of the tunnel
> >>>>    device.
> >>>> +The type must be the same as returned by
> >>>> +.Dv TUNGIFINFO
> >>>> +or set to
> >>>> +.Dv IFT_PPP
> >>>> +else the
> >>>> +.Xr ioctl 2
> >>>> +call will fail.
> >>>>    The
> >>>>    .Vt struct tuninfo
> >>>>    is declared in
> >>>>
> >>>> Modified: head/sys/net/if_tap.c
> >>>> ==============================================================================
> >>>> --- head/sys/net/if_tap.c	Wed Nov 29 09:18:24 2017
> >>>> (r326361) +++ head/sys/net/if_tap.c	Wed Nov 29 09:40:11
> >>>> 2017	(r326362) @@ -737,9 +737,10 @@ tapioctl(struct cdev
> >>>> *dev, u_long cmd, caddr_t data, i switch (cmd) {
> >>>>    		case TAPSIFINFO:
> >>>>    			tapp = (struct tapinfo *)data;
> >>>> +			if (ifp->if_type != tapp->type)
> >>>> +				return (EPROTOTYPE);
> >>>>    			mtx_lock(&tp->tap_mtx);
> >>>>    			ifp->if_mtu = tapp->mtu;
> >>>> -			ifp->if_type = tapp->type;
> >>>>    			ifp->if_baudrate = tapp->baudrate;
> >>>>    			mtx_unlock(&tp->tap_mtx);
> >>>>    			break;
> >>>>
> >>>> Modified: head/sys/net/if_tun.c
> >>>> ==============================================================================
> >>>> --- head/sys/net/if_tun.c	Wed Nov 29 09:18:24 2017
> >>>> (r326361) +++ head/sys/net/if_tun.c	Wed Nov 29 09:40:11
> >>>> 2017	(r326362) @@ -676,9 +676,10 @@ tunioctl(struct cdev
> >>>> *dev, u_long cmd, caddr_t data, i if (error)
> >>>>    				return (error);
> >>>>    		}
> >>>> +		if (TUN2IFP(tp)->if_type != tunp->type)
> >>>> +			return (EPROTOTYPE);
> >>>>    		mtx_lock(&tp->tun_mtx);
> >>>>    		TUN2IFP(tp)->if_mtu = tunp->mtu;
> >>>> -		TUN2IFP(tp)->if_type = tunp->type;
> >>>>    		TUN2IFP(tp)->if_baudrate = tunp->baudrate;
> >>>>    		mtx_unlock(&tp->tun_mtx);
> >>>>    		break;
> >>>> _______________________________________________
> >>>> svn-src-head at freebsd.org mailing list
> >>>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> >>>> To unsubscribe, send any mail to
> >>>> "svn-src-head-unsubscribe at freebsd.org"  
> >>>
> >>> after updating from r325893 to r326362, FreeBSD CURRENT crashes
> >>> while booting the kernel. I'm sorry having no further
> >>> informations, it happens on a laptop with reduced space.
> >>>
> >>> At the moment, it seems that a lot of boxes running most recent
> >>> CURRENT tend to crash spontanously.
> >>>      
> >>
> >> Hi,
> >>
> >> And you built the kernel from scratch and made sure your source
> >> tree does not contain any .o files nor /usr/obj/* .
> >>
> >> --HPS  
> > 
> > Last time I did the make cleandir was when the OFED driver problem
> > occured, that was some days ago. Useually, I build world and kernel
> > with WITH_META_MODE set.
> >   
> 
> Hi,
> 
> Try to do a clean build w/o META mode.
> 
> rm -rf /usr/obj/*
> 
> And check:
> 
> find /usr/src -name "*.o"
> 
> --HPS

I just started a while ago after "make cleanworld" - which seems to
kill all subsequent folders in /usr/obj or whatever MAKEOBJDIRPREFIX
path is set. I hope this suffice for thew moment, my hardware is not
the fastest.

Sincerely
oh



More information about the svn-src-head mailing list