From: Remi Gacogne Date: Fri, 5 Dec 2025 09:22:12 +0000 (+0100) Subject: dnsdist: Consistenly use `getL4HeaderOffset()` in our XSK code X-Git-Tag: rec-5.4.0-alpha1~22^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16521%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Consistenly use `getL4HeaderOffset()` in our XSK code Signed-off-by: Remi Gacogne --- diff --git a/pdns/dnsdistdist/xsk.cc b/pdns/dnsdistdist/xsk.cc index 8aeb7913f5..c45fafd5ed 100644 --- a/pdns/dnsdistdist/xsk.cc +++ b/pdns/dnsdistdist/xsk.cc @@ -626,7 +626,7 @@ void XskPacket::setIPv6Header(const ipv6hdr& ipv6Header) noexcept [[nodiscard]] udphdr XskPacket::getUDPHeader() const noexcept { udphdr udpHeader{}; - const size_t neededRoom = sizeof(ethhdr) + (v6 ? sizeof(ipv6hdr) : sizeof(iphdr)) + sizeof(udpHeader); + const size_t neededRoom = getL4HeaderOffset() + sizeof(udpHeader); assert(frameSize >= neededRoom); if (frameLength >= neededRoom) { // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) @@ -637,10 +637,10 @@ void XskPacket::setIPv6Header(const ipv6hdr& ipv6Header) noexcept void XskPacket::setUDPHeader(const udphdr& udpHeader) noexcept { - const size_t neededRoom = sizeof(ethhdr) + (v6 ? sizeof(ipv6hdr) : sizeof(iphdr)) + sizeof(udpHeader); + const size_t neededRoom = getL4HeaderOffset() + sizeof(udpHeader); assert(frameSize >= neededRoom); if (frameLength < neededRoom) { - frameLength = sizeof(ethhdr) + (v6 ? sizeof(ipv6hdr) : sizeof(iphdr)) + sizeof(udpHeader); + frameLength = getL4HeaderOffset() + sizeof(udpHeader); } // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) memcpy(frame + getL4HeaderOffset(), &udpHeader, sizeof(udpHeader));