Comment 3 for bug 1222377

Revision history for this message
Paul (i41bktob-launchpad-net) wrote :

The bug is in isc-dhcp, file common/discover.c, function next_iface4():

        char buf[256];

This buffer is exceeded when the function performs an fgets() from /proc/net/dev and an interface has a very high (PB or greater) number of bytes, collisions, etc. as per this ifconfig output:

eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          RX packets:1006693089307755 errors:6040167125781120 dropped:2013394768550100 overruns:1006697384275050 frame:5033478331440660
          TX packets:1006697384275050 errors:4026789537100200 dropped:0 overruns:1006697384275050 carrier:2013394768550100
          collisions:5033486921375250 txqueuelen:1000
          RX bytes:1006693089307755 (1.0 PB) TX bytes:1006697384275050 (1.0 PB)

I have raised this with ISC and hopefully they will fix it. If you want to patch it anyway, simply double the buffer size.