From a57dd1d13ff96022b76fe2a7f7e5be538cf526a1 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 8 Nov 2023 13:15:00 +0900 Subject: [PATCH] sd-dhcp-client: move packet size check to dhcp_packet_verify_headers() No functional change. --- src/libsystemd-network/dhcp-packet.c | 4 +++- src/libsystemd-network/sd-dhcp-client.c | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libsystemd-network/dhcp-packet.c b/src/libsystemd-network/dhcp-packet.c index 78eb36c7337..75b1d7e6cc7 100644 --- a/src/libsystemd-network/dhcp-packet.c +++ b/src/libsystemd-network/dhcp-packet.c @@ -129,7 +129,9 @@ int dhcp_packet_verify_headers(DHCPPacket *packet, size_t len, bool checksum, ui size_t hdrlen; assert(packet); - assert(len >= sizeof(DHCPPacket)); + + if (len < sizeof(DHCPPacket)) + return 0; /* IP */ diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index 3f2e0e3ded3..2a0d7bf853b 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -2211,8 +2211,6 @@ static int client_receive_message_raw( log_dhcp_client_errno(client, len, "Could not receive message from raw socket, ignoring: %m"); return 0; } - if ((size_t) len < sizeof(DHCPPacket)) - return 0; cmsg = cmsg_find(&msg, SOL_PACKET, PACKET_AUXDATA, CMSG_LEN(sizeof(struct tpacket_auxdata))); if (cmsg) { -- 2.47.3