1
0
Fork 0
mirror of https://passt.top/passt synced 2025-06-13 19:15:34 +02:00

dhcp: Remove option 255 length byte

The option 255 (end of options) do not need the length byte, this change
remove that allowing to have one extra byte at other dynamic options.

Signed-off-by: Enrique Llorente <ellorent@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
Enrique Llorente 2025-02-17 10:28:14 +01:00 committed by Stefano Brivio
parent a1e48a02ff
commit bcc4908c2b

7
dhcp.c
View file

@ -64,9 +64,9 @@ static struct opt opts[255];
#define OPT_MIN 60 /* RFC 951 */
/* Total option size (excluding end option) is 576 (RFC 2131), minus
* offset of options (268), minus end option and its length (2).
* offset of options (268), minus end option (1).
*/
#define OPT_MAX 306
#define OPT_MAX 307
/**
* dhcp_init() - Initialise DHCP options
@ -127,7 +127,7 @@ struct msg {
uint8_t sname[64];
uint8_t file[128];
uint32_t magic;
uint8_t o[OPT_MAX + 2 /* End option and its length */ ];
uint8_t o[OPT_MAX + 1 /* End option */ ];
} __attribute__((__packed__));
/**
@ -194,7 +194,6 @@ static int fill(struct msg *m)
}
m->o[offset++] = 255;
m->o[offset++] = 0;
if (offset < OPT_MIN) {
memset(&m->o[offset], 0, OPT_MIN - offset);