mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
selftests/bpf: Fix erroneous bitmask operation
[ Upstream commitb6a3451e08] xdp_synproxy_kern.c is a BPF program that generates SYN cookies on allowed TCP ports and sends SYNACKs to clients, accelerating synproxy iptables module. Fix the bitmask operation when checking the status of an existing conntrack entry within tcp_lookup() function. Do not AND with the bit position number, but with the bitmask value to check whether the entry found has the IPS_CONFIRMED flag set. Fixes:fb5cd0ce70("selftests/bpf: Add selftests for raw syncookie helpers") Signed-off-by: Jeroen van Ingen Schenau <jeroen.vaningenschenau@novoserve.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Tested-by: Minh Le Hoang <minh.lehoang@novoserve.com> Link: https://lore.kernel.org/xdp-newbies/CAAi1gX7owA+Tcxq-titC-h-KPM7Ri-6ZhTNMhrnPq5gmYYwKow@mail.gmail.com/T/#u Link: https://lore.kernel.org/bpf/20231130120353.3084-1-jeroen.vaningenschenau@novoserve.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
5b5ddf21b9
commit
3bb89decca
|
|
@ -447,13 +447,13 @@ static __always_inline int tcp_lookup(void *ctx, struct header_pointers *hdr, bo
|
|||
unsigned long status = ct->status;
|
||||
|
||||
bpf_ct_release(ct);
|
||||
if (status & IPS_CONFIRMED_BIT)
|
||||
if (status & IPS_CONFIRMED)
|
||||
return XDP_PASS;
|
||||
} else if (ct_lookup_opts.error != -ENOENT) {
|
||||
return XDP_ABORTED;
|
||||
}
|
||||
|
||||
/* error == -ENOENT || !(status & IPS_CONFIRMED_BIT) */
|
||||
/* error == -ENOENT || !(status & IPS_CONFIRMED) */
|
||||
return XDP_TX;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user