From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Frysinger Date: Fri, 22 Oct 2010 16:06:44 -0400 Subject: [U-Boot] [PATCH 1/1] net:Fix potential empty DHCP Parameter Request List In-Reply-To: <1287736585-32489-1-git-send-email-r64343@freescale.com> References: <1287736585-32489-1-git-send-email-r64343@freescale.com> Message-ID: <201010221606.44818.vapier@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Friday, October 22, 2010 04:36:25 Jason Liu wrote: > From: Gray Remlin > > Can't get IP address with dhcp due to the dhcp server not > allow the empty param list request under some network env > > --- a/net/bootp.c > +++ b/net/bootp.c > @@ -417,9 +417,19 @@ static int DhcpExtended (u8 * e, int message_type, > IPaddr_t ServerID, IPaddr_t R return x - start; > #endif > > +#if defined(CONFIG_BOOTP_SUBNETMASK) || \ > + defined(CONFIG_BOOTP_TIMEOFFSET) || \ > + defined(CONFIG_BOOTP_GATEWAY) || \ > + defined(CONFIG_BOOTP_DNS) || \ > + defined(CONFIG_BOOTP_HOSTNAME) || \ > + defined(CONFIG_BOOTP_BOOTFILESIZE) || \ > + defined(CONFIG_BOOTP_BOOTPATH) || \ > + defined(CONFIG_BOOTP_NISDOMAIN) || \ > + defined(CONFIG_BOOTP_NTPSERVER) > *e++ = 55; /* Parameter Request List */ > cnt = e++; /* Pointer to count of requested items */ > *cnt = 0; > +#endif this list is pretty ugly and prone to breakage. how about having the code back itself up and let gcc optimize things away ? two ways of doing this ... (1) after the current ifdef list and before the "*e++ = 255;", add like: /* no options, so back up to avoid sending an empty request list */ if (*cnt == 0) e -= 2; (2) add a "bool empty_list" to this func. where we set "*cnt = 0", do: empty_list = true; then in every ifdef currently, add: empty_list = false; and at the end, do: /* no options, so back up to avoid sending an empty request list */ if (empty_list) e -= 2; -mike -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://lists.denx.de/pipermail/u-boot/attachments/20101022/fa87c00b/attachment.pgp