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;