[git commit master] udhcpd: note missing sanity checks on INFORM message handling

Denys Vlasenko vda.linux at googlemail.com
Sun Apr 4 20:36:34 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=f8fcc184b6e05cbf5f88aa4f4e716e137a69f97e
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/udhcp/dhcpd.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c
index 2d1d5de..e484733 100644
--- a/networking/udhcp/dhcpd.c
+++ b/networking/udhcp/dhcpd.c
@@ -247,11 +247,23 @@ static void send_inform(struct dhcp_packet *oldpacket)
 {
 	struct dhcp_packet packet;
 
-	/* "The server responds to a DHCPINFORM message by sending a DHCPACK
+	/* "If a client has obtained a network address through some other means
+	 * (e.g., manual configuration), it may use a DHCPINFORM request message
+	 * to obtain other local configuration parameters.  Servers receiving a
+	 * DHCPINFORM message construct a DHCPACK message with any local
+	 * configuration parameters appropriate for the client without:
+	 * allocating a new address, checking for an existing binding, filling
+	 * in 'yiaddr' or including lease time parameters.  The servers SHOULD
+	 * unicast the DHCPACK reply to the address given in the 'ciaddr' field
+	 * of the DHCPINFORM message.
+	 * ...
+	 * The server responds to a DHCPINFORM message by sending a DHCPACK
 	 * message directly to the address given in the 'ciaddr' field
 	 * of the DHCPINFORM message.  The server MUST NOT send a lease
 	 * expiration time to the client and SHOULD NOT fill in 'yiaddr'."
 	 */
+//TODO: do a few sanity checks: is ciaddr set?
+//Better yet: is ciaddr == IP source addr?
 	init_packet(&packet, oldpacket, DHCPACK);
 	add_server_options(&packet);
 
-- 
1.6.3.3



More information about the busybox-cvs mailing list