Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 May 2010 18:11:20 GMT
From:      Stephen McPolin <steve@bytowntech.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/146640: SIOC_WANPIPE_PIPEMON conflicts with GIFGOPTS causes ifconfig sigbus.
Message-ID:  <201005161811.o4GIBKKI021869@www.freebsd.org>
Resent-Message-ID: <201005161820.o4GIK16b012620@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         146640
>Category:       ports
>Synopsis:       SIOC_WANPIPE_PIPEMON conflicts with GIFGOPTS causes ifconfig sigbus.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 16 18:20:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Stephen McPolin
>Release:        FreeBSD 8.0 STABLE
>Organization:
Bytown Technology Group
>Environment:
FreeBSD .jurasys.com 8.0-STABLE-201004 FreeBSD 8.0-STABLE-201004 #0: Mon Apr  5 15:59:06 UTC 2010     root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
The lines below show the conflicts in this ports ioctls.  Ifconfig cores from a SIGBUS because the GIFGOPTS was being interpreted incorrectly by wanpipe, and smashed the stackframe of gif_status() in ifconfig/ifgif.c


usr/ports/misc/wanpipe/work/wanpipe-3.3.1/include:
wanpipe_snmp.h:# define SIOC_WANPIPE_SNMP               _IOWR('i', 100, struct ifreq)
wanpipe_snmp.h:# define SIOC_WANPIPE_SNMP_IFSPEED       _IOWR('i', 101, struct ifreq)
wanrouter.h:# define SIOC_WANPIPE_PIPEMON       _IOWR('i', 150, struct ifreq) /* get monitor statistics */
wanrouter.h:# define SIOC_WANPIPE_DEVICE        _IOWR('i', 151, struct ifreq) /* set generic device */
wanrouter.h:# define SIOC_WANPIPE_DUMP  _IOWR('i', 153, struct ifreq) /* get memdump string (GENERIC) */

/usr/include:
netinet6/in6_var.h:#define SIOCSIFPREFIX_IN6    _IOW('i', 100, struct in6_prefixreq) /* set */
netinet6/in6_var.h:#define SIOCGIFPREFIX_IN6    _IOWR('i', 101, struct in6_prefixreq) /* get */
net/if_gif.h:#define GIFGOPTS   _IOWR('i', 150, struct ifreq)
net/if_gif.h:#define GIFSOPTS   _IOW('i', 151, struct ifreq)

>How-To-Repeat:
Build the wanpipe port [ requires a little manual intervention ] and install it on a machine with a Sangoma A10[124] board.

Configure the ports, and load modules with "wanrouter start".

After this, ifconfig faults when it queries any of the wanpipe interfaces.
>Fix:

Change the ioctl values in the wanpipe header files is step one.

A real 'fix' would involve an "ioctl value registry".



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005161811.o4GIBKKI021869>