From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Brivio To: passt-dev@passt.top Subject: [PATCH 21/24] dhcp: Minimum option length implied by RFC 951 is 60 bytes, not 62 Date: Fri, 25 Mar 2022 23:52:57 +0100 Message-ID: <20220325225300.2803584-22-sbrivio@redhat.com> In-Reply-To: <20220325225300.2803584-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3650829063996325022==" --===============3650829063996325022== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit In section 3 ("Packet Format"), "vend" is 64 bytes long, minus the magic that's 60 bytes, not 62. Signed-off-by: Stefano Brivio --- dhcp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dhcp.c b/dhcp.c index 197a515..d24ef86 100644 --- a/dhcp.c +++ b/dhcp.c @@ -57,6 +57,8 @@ static struct opt opts[255]; #define DHCPINFORM 8 #define DHCPFORCERENEW 9 +#define OPT_MIN 60 /* RFC 951 */ + /** * dhcp_init() - Initialise DHCP options */ @@ -158,9 +160,9 @@ static int fill(struct msg *m) m->o[offset++] = 255; m->o[offset++] = 0; - if (offset < 62 /* RFC 951 */) { - memset(&m->o[offset], 0, 62 - offset); - offset = 62; + if (offset < OPT_MIN) { + memset(&m->o[offset], 0, OPT_MIN - offset); + offset = OPT_MIN; } return offset; -- 2.35.1 --===============3650829063996325022==--