diff options
author | Gene Cumm <gene.cumm@gmail.com> | 2015-06-25 11:13:07 -0400 |
---|---|---|
committer | Gene Cumm <gene.cumm@gmail.com> | 2015-06-25 11:13:07 -0400 |
commit | 6e958ddff25c1df2a11e8c72b8b1e20bd671e3fe (patch) | |
tree | ccf84f6fa2434a8b3a2c83ae096d09a17974eeb8 | |
parent | 8e53b8a63c8ae1e266f63f502a537b9e8e03baed (diff) | |
download | syslinux-6e958ddff25c1df2a11e8c72b8b1e20bd671e3fe.tar.gz syslinux-6e958ddff25c1df2a11e8c72b8b1e20bd671e3fe.tar.xz syslinux-6e958ddff25c1df2a11e8c72b8b1e20bd671e3fe.zip |
core/pxe/dhcp_option: Filter options based on pkt_type
Filter (by setting a minimum option number) the options based on pkt_type.
DHCPDiscover/PXEReply should only contain info about client ID, boot
server and PXELINUX options.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
-rw-r--r-- | core/fs/pxe/dhcp_option.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/fs/pxe/dhcp_option.c b/core/fs/pxe/dhcp_option.c index 0835cfee..8d93a6af 100644 --- a/core/fs/pxe/dhcp_option.c +++ b/core/fs/pxe/dhcp_option.c @@ -228,11 +228,14 @@ void parse_dhcp(const void *pkt, size_t pkt_len, int pkt_type) { const struct bootp_t *dhcp = (const struct bootp_t *)pkt; int opt_len; + int min_opt = 0; IPInfo.ipver = 4; /* This is IPv4 only for now... */ over_load = 0; - if ((pkt_type == 0 || pkt_type == 2) && ip_ok(dhcp->yip)) + if (pkt_type == 1 || pkt_type == 3) + min_opt = 43; + if ((pkt_type == 2) && ip_ok(dhcp->yip)) IPInfo.myip = dhcp->yip; if (ip_ok(dhcp->sip)) |