Package: isc-dhcp-relay Version: 4.1.1-P1-16 Severity: normal Hi,
dhcrelay segfaults on first incoming packet if the client-facing interface has a label on its IP address Steps to reproduce: Have Debian box with two interfaces, two networks 192.168.0.0/24 and 10.0.0.0/24. ip link set dev eth0 up ip link set dev eth1 up ip addr add dev eth0 192.168.0.254/24 brd + ip addr add dev eth1 10.0.0.1/24 brd + label eth1:foo ip addr 50: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:25:b3:01:c6:d0 brd ff:ff:ff:ff:ff:ff inet 192.168.0.254/24 brd 192.168.0.255 scope global 51: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:25:b3:01:c6:d0 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/24 brd 10.0.0.255 scope global eth1:foo dhcrelay -d -i eth0 -i eth1 192.168.0.1 (it is not necessary to have a DHCP server on 192.168.0.1) have a client connected to 10.0.0.1 send a DHCP request dhcrelay segfaults in dhcrelay.c line 660 backtrace: $ gdb /usr/sbin/dhcrelay core GNU gdb (GDB) 7.0.1-debian Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/sbin/dhcrelay...Reading symbols from /usr/lib/debug/usr/sbin/dhcrelay...done. (no debugging symbols found)...done. warning: Can't read pathname for load map: Input/output error. Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libnss_files.so.2 Core was generated by `dhcrelay -d -i eth0 -i eth1 192.168.0.1'. Program terminated with signal 11, Segmentation fault. #0 0x0804c5f8 in do_relay4 (ip=0x80aa560, packet=0xbfe2d768, length=300, from_port=17408, from=..., hfrom=0xbfe2e77e) at dhcrelay.c:660 660 dhcrelay.c: No such file or directory. in dhcrelay.c (gdb) bt #0 0x0804c5f8 in do_relay4 (ip=0x80aa560, packet=0xbfe2d768, length=300, from_port=17408, from=..., hfrom=0xbfe2e77e) at dhcrelay.c:660 #1 0x08053923 in got_one (h=0x80aa560) at discover.c:1393 #2 0x0807dd22 in omapi_one_dispatch (wo=0x0, t=0x0) at dispatch.c:520 #3 0x08055718 in dispatch () at dispatch.c:92 #4 0x0804ad56 in main (argc=7, argv=0xbfe2ecb4) at dhcrelay.c:549 (gdb) 654 /* If giaddr is not already set, Set it so the server can 655 figure out what net it's from and so that we can later 656 forward the response to the correct net. If it's already 657 set, the response will be sent directly to the relay agent 658 that set giaddr, so we won't see it. */ 659 if (!packet->giaddr.s_addr) 660 packet->giaddr = ip->addresses[0]; 661 if (packet->hops < max_hop_count) 662 packet->hops = packet->hops + 1; 663 else 664 return; Greetings Marc -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org