diff options
author | Andre Renaud <andre@designa-electronics.com> | 2016-05-05 07:28:08 -0600 |
---|---|---|
committer | Andreas Bießmann <andreas@biessmann.org> | 2016-06-12 23:49:38 +0200 |
commit | 166c409bc42627d9e19517f6ce121c39d0f52b65 (patch) | |
tree | c923a685fa1ed7c545ab028dba8bb7839d8cb8be /net | |
parent | b4d956f6bc0fe6ff9a5776cbce0fe97a344737a3 (diff) |
net: Handle an empty bootp extension section
Avoid generating this section if there is nothing in it.
Signed-off-by: Andre Renaud <andre@designa-electronics.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/bootp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/bootp.c b/net/bootp.c index aa6cdf0a47..42e14eda41 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -673,6 +673,15 @@ static int bootp_extended(u8 *e) *e++ = 255; /* End of the list */ + /* + * If nothing in list, remove it altogether. Some DHCP servers get + * upset by this minor faux pas and do not respond at all. + */ + if (e == start + 3) { + printf("*** Warning: no DHCP options requested\n"); + e -= 3; + } + return e - start; } #endif |