Apply by doing: cd /usr/src patch -p0 < 001_dhcpd.patch And then rebuild and install file: cd usr.sbin/dhcpd make obj make cleandir make depend make make install Index: usr.sbin/dhcpd/options.c =================================================================== RCS file: /cvs/src/usr.sbin/dhcpd/options.c,v retrieving revision 1.8 retrieving revision 1.8.4.1 diff -u -p -u -r1.8 -r1.8.4.1 --- usr.sbin/dhcpd/options.c 15 Dec 2006 14:09:13 -0000 1.8 +++ usr.sbin/dhcpd/options.c 10 Oct 2007 06:10:27 -0000 1.8.4.1 @@ -1,4 +1,4 @@ -/* $OpenBSD: options.c,v 1.8 2006/12/15 14:09:13 stevesk Exp $ */ +/* $OpenBSD: options.c,v 1.8.4.1 2007/10/10 06:10:27 ckuethe Exp $ */ /* DHCP options parsing and reassembly. */ @@ -224,9 +224,12 @@ cons_options(struct packet *inpacket, st inpacket && inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].data && (inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].len >= - sizeof(u_int16_t))) + sizeof(u_int16_t))) { mms = getUShort( inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].data); + if (mms < 576) + mms = 576; /* mms must be >= minimum IP MTU */ + } if (mms) main_buffer_size = mms - DHCP_FIXED_LEN;