dhclient segfaults on interfaces it can not handle

Bug #1173483 reported by Anand Kumria
26
This bug affects 6 people
Affects Status Importance Assigned to Milestone
isc-dhcp (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Hi,

This is with version: 4.2.4-5ubuntu2wf1, which is a backport to precise of the current raring dhcp verion (4.2.4-5ubuntu2).

The only modification is changing the targeted release.

I was under the impression that ISC DHCP (now) supported prefix delegation.

# dhclient -d -v -6 -P --no-pid ppp0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Bound to *:546
Segmentation fault (core dumped)

Installing the isc-client-dbg is a bit more revealing:

# gdb --args dhclient -d -v -6 -P --no-pid ppp0
GNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02
Copyright (C) 2012 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 "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /sbin/dhclient...Reading symbols from /usr/lib/debug/sbin/dhclient...done.
done.
(gdb) run
Starting program: /sbin/dhclient -d -v -6 -P --no-pid ppp0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Bound to *:546

Program received signal SIGSEGV, Segmentation fault.
0x00007f94311a2161 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007f94311a2161 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f943125ed80 in __vsnprintf_chk () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007f94317979a8 in vsnprintf (__ap=0x7ffff261ab08, __fmt=0x7f9431adcba0 "Unsupported device type %h for \"%s\"", __n=1024,
    __s=0x7f9431adcfa0 "Unsupported device type % for \"www.isc.org/software/dhcp/") at /usr/include/x86_64-linux-gnu/bits/stdio2.h:78
#3 log_fatal (fmt=<optimised out>) at errwarn.c:64
#4 0x00007f9431773ffd in get_hw_addr (info=0x7f9432b26a50) at lpf.c:712
#5 0x00007f9431789318 in if_register6 (info=0x7f9432b26a50, do_multicast=<optimised out>) at socket.c:501
#6 0x00007f943176d72d in discover_interfaces (state=4) at discover.c:1264
#7 0x00007f9431750d95 in main (argc=<optimised out>, argv=<optimised out>) at dhclient.c:569
(gdb)

It is a shame that ISC DHCP still does not support DHCPv6 PD over PPP interfaces but it certainly should not segfault when attempting to report an error.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in isc-dhcp (Ubuntu):
status: New → Confirmed
Revision history for this message
AVAUX Fabrice (fabrice-9) wrote :

The problem exists in version ISC 4.3 but it does not generate segfault but a message : Unsupported device type 512 for "ppp0" in syslog.
The problem has been solved by a patch in fedora (https://bugzilla.redhat.com/show_bug.cgi?id=626514).
It is a problem of implementation by ISC because it is the normal way using DHCP with ipv6 on ppp (https://datatracker.ietf.org/doc/rfc6204/).

Workaround : use the wide DHCP package, it is old but it is working !

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.