NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/51325: "netstat -ia" causes infinite loop



The following reply was made to PR kern/51325; it has been noted by GNATS.

From: Ryota Ozaki <ozaki-r%netbsd.org@localhost>
To: "gnats-bugs%NetBSD.org@localhost" <gnats-bugs%netbsd.org@localhost>
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/51325: "netstat -ia" causes infinite loop
Date: Mon, 11 Jul 2016 09:37:43 +0900

 On Sat, Jul 9, 2016 at 12:05 AM,  <nonakap%gmail.com@localhost> wrote:
 >>Number:         51325
 >>Category:       kern
 >>Synopsis:       "netstat -ia" causes infinite loop
 >>Confidential:   no
 >>Severity:       critical
 >>Priority:       high
 >>Responsible:    kern-bug-people
 >>State:          open
 >>Class:          sw-bug
 >>Submitter-Id:   net
 >>Arrival-Date:   Fri Jul 08 15:05:00 +0000 2016
 >>Originator:     Kimihiro Nonaka
 >>Release:        HEAD (20160708)
 >>Organization:
 >>Environment:
 > NetBSD koharu.myhome.nonakap.org 7.99.33 NetBSD 7.99.33 (GENERIC) #1: Fri Jul  8 23:09:29 JST 2016  nonaka%build.myhome.nonakap.org@localhost:/home/snapshot/NetBSD/HEAD-20160707/obj.NetBSD-amd64/amd64/sys/arch/amd64/compile/GENERIC amd64
 >>Description:
 > nonaka@koharu$ netstat -ia
 > Name  Mtu   Network       Address              Ipkts Ierrs    Opkts Oerrs Colls
 > iwm0  1500  <Link>        00:15:00:e7:58:d8      768     0     1231     0     0
 > netstat: kvm_read: Bad address
 > iwm0  1500  192.168.0.2/3 koharu.myhome.non
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 > netstat: kvm_read: Bad address
 >                           default
 >>How-To-Repeat:
 > netstat -ia
 >>Fix:
 > N/A
 >
 
 It happens due to a member variable added to struct ifaddr:
   http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/net/if.h.diff?r1=1.219&r2=1.220&f=h
 
 The new variable was added to the end of struct ifaddr to avoid changing
 positions of the other member variables as usual. However, it wan't enough
 because struct ifaddr is embedded at the begging of other data
 structures, such as in_ifaddr and in6_ifaddr, and so member variables of
 the data structures are shifted downward, resulting in that kvm(3)
 fails to read list pointers.
 
 I have no good idea to fix the issue easily, so I'll revert the change set
 in question.
 
   ozaki-r
 


Home | Main Index | Thread Index | Old Index