Mercurial > hg > dhcpcd
changeset 5157:9a50ab509182 draft
DHCP: Avoid mis-aligned BOOTP structure
This was caused by the recent change to pass back the frame header.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Mon, 20 Apr 2020 22:16:24 +0100 |
| parents | f6dc9654ac6b |
| children | f5dbfb2af80c |
| files | src/dhcp.c |
| diffstat | 1 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dhcp.c Sun Apr 19 10:41:11 2020 +0100 +++ b/src/dhcp.c Mon Apr 20 22:16:24 2020 +0100 @@ -3453,12 +3453,16 @@ } break; } - if (bytes < fl) { - logerrx("%s: %s: short frame header", - __func__, ifp->name); - break; + if (fl != 0) { + if (bytes < fl) { + logerrx("%s: %s: short frame header", + __func__, ifp->name); + break; + } + bytes -= fl; + memmove(buf, buf + fl, (size_t)bytes); } - dhcp_packet(ifp, buf + fl, (size_t)(bytes - fl)); + dhcp_packet(ifp, buf, (size_t)bytes); /* Check we still have a state after processing. */ if ((state = D_STATE(ifp)) == NULL) break;
