Date: Thu, 16 Jan 1997 18:36:03 -0800 (PST) From: Dave Cornejo <dave@dogwood.com> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/2513: pppd causes panic Message-ID: <199701170236.SAA23094@white.dogwood.com> Resent-Message-ID: <199701170240.SAA04721@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 2513
>Category: kern
>Synopsis: a PPP connection causes a page fault panic
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 16 18:40:01 PST 1997
>Last-Modified:
>Originator: Dave Cornejo
>Organization:
Dogwood Media
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
FreeBSD 3.0-CURRENT cvsupped Jan 16 07:11 PST
>Description:
When a PPP connection is established we get a panic due to a page fault.
The dump stack trace:
#0 boot (howto=256) at ../../kern/kern_shutdown.c:243
#1 0xf0111482 in panic (fmt=0xf01b72ff "page fault")
at ../../kern/kern_shutdown.c:367
#2 0xf01b7e66 in trap_fatal (frame=0xefbffcd8) at ../../i386/i386/trap.c:742
#3 0xf01b7954 in trap_pfault (frame=0xefbffcd8, usermode=0)
at ../../i386/i386/trap.c:653
#4 0xf01b762f in trap (frame={tf_es = 16, tf_ds = -229244912, tf_edi = 0,
tf_esi = 0, tf_ebp = -272630480, tf_isp = -272630528,
tf_ebx = -266443772, tf_edx = 0, tf_ecx = -2145359567,
tf_eax = -1073544038, tf_trapno = 12, tf_err = 0, tf_eip = -267108901,
tf_cs = 8, tf_eflags = 66118, tf_esp = -228623456, tf_ss = -1073610752})
at ../../i386/i386/trap.c:311
#5 0xf0143ddb in pppsioctl (ifp=0xf01e6404, cmd=-2145359567, data=0x0)
at ../../net/if_ppp.c:547
#6 0xf01425b1 in if_addmulti (ifp=0xf01e6404, sa=0xefbffd80,
retifma=0xefbffd7c) at ../../net/if.c:888
#7 0xf014e058 in in_addmulti (ap=0xefbffdb4, ifp=0xf01e6404)
at ../../netinet/in.c:535
#8 0xf014dfa4 in in_ifinit (ifp=0xf01e6404, ia=0xf25fe000, sin=0xefbffee4,
scrub=0) at ../../netinet/in.c:465
#9 0xf014dc64 in in_control (so=0xf2600500, cmd=2151704858,
data=0xefbffed4 "ppp0", ifp=0xf01e6404) at ../../netinet/in.c:336
#10 0xf01584d2 in udp_usrreq (so=0xf2600500, req=11, m=0x8040691a,
addr=0xefbffed4, control=0xf01e6404) at ../../netinet/udp_usrreq.c:479
#11 0xf012784a in old_control (so=0xf2600500, cmd=-2143262438,
data=0xefbffed4 "ppp0", ifp=0xf01e6404) at ../../kern/uipc_socket2.c:881
#12 0xf0142057 in ifioctl (so=0xf2600500, cmd=-2143262438,
data=0xefbffed4 "ppp0", p=0xf25eb800) at ../../net/if.c:642
#13 0xf011ad0a in soo_ioctl (fp=0xf2602bc0, cmd=-2143262438,
data=0xefbffed4 "ppp0", p=0xf25eb800) at ../../kern/sys_socket.c:138
#14 0xf0118a73 in ioctl (p=0xf25eb800, uap=0xefbfff94, retval=0xefbfff84)
at ../../kern/sys_generic.c:497
#15 0xf01b80ff in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = -251658241,
tf_esi = 302098624, tf_ebp = -272639028, tf_isp = -272629788,
tf_ebx = 285321408, tf_edx = 0, tf_ecx = 0, tf_eax = 54, tf_trapno = 7,
tf_err = 7, tf_eip = 134762129, tf_cs = 31, tf_eflags = 658,
tf_esp = -272639120, tf_ss = 39}) at ../../i386/i386/trap.c:892
#16 0x8084e91 in ?? ()
#17 0x698c in ?? ()
#18 0x35c0 in ?? ()
#19 0x3322 in ?? ()
#20 0x5971 in ?? ()
#21 0x22c4 in ?? ()
#22 0x2109 in ?? ()
#23 0x1095 in ?? ()
the fault occurs in line 547 of if_ppp.c - ifr == NULL at this point.
ifr is set in line 483 by casting data to (struct ifreq *). This is
called at line 888 of if.c in if_addmulti() which is pretty blatantly
wrong:
ifp->if_ioctl(ifp, SIOCADDMULTI, 0);
^^^
>How-To-Repeat:
run pppd
>Fix:
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701170236.SAA23094>
