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



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