net/dhcpcd: segmentation fault on interface state change

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

net/dhcpcd: segmentation fault on interface state change

Klemens Nanni-2
Running dhcpcd-7.0.1p1 on my X230 with a March 2nd snapshot to configure
DNS via stateless DHCPv6. When roaming between networks or simply taking
the egress interface down and up again, dhcpcd dumps core.

        # rcctl get dhcpcd flags
        trunk0
        # cat /etc/dhcpcd.conf
        background
        ipv6only
        ipv6ra_fork
        ipv6ra_noautoconf
       
        option  domain_name domain_name_servers domain_search
        require domain_name_servers

Reproducible as follows:

        # ifconfig trunk0 down up # does *not* trigger it
        # rcctl check dhcpcd
        dhcpcd(ok)
        # ifconfig trunk0 down ; ifconfig trunk0 up
        # rcctl check dhcpcd
        dhcpcd(failed)

Full backtrace with debug symbols:

        # egdb -se `which dhcpcd` -c /dhcpcd.core -batch -ex bt
        [New process 524139]
        Core was generated by `dhcpcd'.
        Program terminated with signal SIGSEGV, Segmentation fault.
        #0  0x000016ed6ec279ec in dhcp6_handleifa (cmd=12, ia=0x16f0076c5800) at dhcp6.c:3886
        3886                ifp->options->options & DHCPCD_DHCP6 &&
        #0  0x000016ed6ec279ec in dhcp6_handleifa (cmd=12, ia=0x16f0076c5800) at dhcp6.c:3886
        #1  0x000016ed6ec21a1a in ipv6_handleifa (ctx=<optimized out>, cmd=12, ifs=<optimized out>, ifname=<optimized out>, addr=<optimized out>, prefix_len=<optimized out>, addrflags=<optimized out>) at ipv6.c:1178
        #2  0x000016ed6ec07f82 in if_learnaddrs (ctx=0x7f7ffffdbba0, ifs=0x16f05fcefb40, ifaddrs=0x7f7ffffdb7c0) at if.c:259
        #3  0x000016ed6ec03185 in dhcpcd_handleinterface (arg=0x7f7ffffdbba0, action=0, ifname=<optimized out>) at dhcpcd.c:1030
        #4  0x000016ed6ec02d4c in dhcpcd_handlecarrier (ctx=0x7f7ffffdbba0, carrier=<optimized out>, flags=34818, ifname=<optimized out>) at dhcpcd.c:739
        #5  0x000016ed6ec157fc in if_ifinfo (ctx=<optimized out>, ifm=<optimized out>) at if-bsd.c:965
        #6  if_dispatch (rtm=<optimized out>, ctx=<optimized out>) at if-bsd.c:1195
        #7  if_handlelink (ctx=0x7f7ffffdbba0) at if-bsd.c:1225
        #8  0x000016ed6ec05a6f in dhcpcd_handlelink (arg=0x7f7ffffdbba0) at dhcpcd.c:964
        #9  0x000016ed6ec06ecc in eloop_start (eloop=0x16f030530200, signals=<optimized out>) at eloop.c:963
        #10 0x000016ed6ec0563f in main (argc=<optimized out>, argv=0x7f7ffffdbf48) at dhcpcd.c:1924

Can anybody reproduce this? Below is my APU2's configurtation running
wide-dhcpv6-20080615p8 with a snapshot from March 6th:

        apu# cat /etc/dhcp6s.conf
        option domain-name-servers fd00::1;
        apu# cat /etc/rtadvd.conf
        default:\
                :mininterval#3:maxinterval#4:\
                :vltime#86400:\
                :rdnss="fd00::1":\
                :raflags=0x40: