diff -uNr dhcp-3.1.2.ORIG/client/dhclient.c dhcp-3.1.2/client/dhclient.c --- dhcp-3.1.2.ORIG/client/dhclient.c 2009-07-13 13:14:40.000000000 +0100 +++ dhcp-3.1.2/client/dhclient.c 2009-07-13 13:16:00.000000000 +0100 @@ -2550,8 +2550,9 @@ (struct option_state *)0, lease -> options, &global_scope, oc, MDL)) { - if (data.len > 3) { - struct iaddr netmask, subnet, broadcast; + struct iaddr netmask; + if (data.len > 3 && data.len <= sizeof(netmask.iabuf)) { + struct iaddr subnet, broadcast; memcpy (netmask.iabuf, data.data, data.len); netmask.len = data.len;