]> The Tcpdump Group git mirrors - libpcap/commitdiff
Simplify a bitwise expression in gen_broadcast().
authorDenis Ovsienko <[email protected]>
Fri, 21 Feb 2025 23:27:52 +0000 (23:27 +0000)
committerDenis Ovsienko <[email protected]>
Fri, 21 Feb 2025 23:34:41 +0000 (23:34 +0000)
Since hostmask is a 32-bit unsigned int, "~0 & hostmask" stands for
"0xFFFFFFFF & hostmask", which always equals hostmask.  The tests for
"ip broadcast" hold as expected.

gencode.c

index d7318e030c423688fdc1ae6a5be22d27f554c264..4ec901f6b3889c18b43f5fbb40a5d6656af0bc26 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -8467,8 +8467,7 @@ gen_broadcast(compiler_state_t *cstate, int proto)
                b0 = gen_linktype(cstate, ETHERTYPE_IP);
                hostmask = ~cstate->netmask;
                b1 = gen_mcmp(cstate, OR_LINKPL, 16, BPF_W, 0, hostmask);
-               b2 = gen_mcmp(cstate, OR_LINKPL, 16, BPF_W,
-                             ~0 & hostmask, hostmask);
+               b2 = gen_mcmp(cstate, OR_LINKPL, 16, BPF_W, hostmask, hostmask);
                gen_or(b1, b2);
                gen_and(b0, b2);
                return b2;