]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp-client: move packet size check to dhcp_packet_verify_headers()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 8 Nov 2023 04:15:00 +0000 (13:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 8 Nov 2023 08:54:52 +0000 (17:54 +0900)
No functional change.

src/libsystemd-network/dhcp-packet.c
src/libsystemd-network/sd-dhcp-client.c

index 78eb36c73371df8f01bfe00e58c46316217d89ef..75b1d7e6cc77bd60852947c2b8f7a66fb5e16f53 100644 (file)
@@ -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 */
 
index 3f2e0e3ded373500f7da86d2ea5367d32dcf2ee4..2a0d7bf853ba12a9eae0ef099ddd18086e92bdec 100644 (file)
@@ -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) {