From e1609d8159a21b2e17d56ee7ca094e063b30d96c Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 15 Jun 2026 16:21:34 +0200 Subject: [PATCH] forecast: Make BPF statements for metadata reads clearer The kernel ignores the width of these metadata loads, but since we read 32-bit values, this makes it a bit clearer and technically more correct. --- src/libcharon/plugins/forecast/forecast_forwarder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcharon/plugins/forecast/forecast_forwarder.c b/src/libcharon/plugins/forecast/forecast_forwarder.c index e1c5ae465..01cc6168b 100644 --- a/src/libcharon/plugins/forecast/forecast_forwarder.c +++ b/src/libcharon/plugins/forecast/forecast_forwarder.c @@ -323,10 +323,10 @@ static bool attach_filter(int fd, uint32_t broadcast, uint32_t ifindex) { struct sock_filter filter_code[] = { /* handle any marked packets (from clients) */ - BPF_STMT(BPF_LD+BPF_B+BPF_ABS, SKF_AD_OFF+SKF_AD_MARK), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, SKF_AD_OFF+SKF_AD_MARK), BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 2), /* and those from the internal interface */ - BPF_STMT(BPF_LD+BPF_B+BPF_ABS, SKF_AD_OFF+SKF_AD_IFINDEX), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, SKF_AD_OFF+SKF_AD_IFINDEX), BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ifindex, 0, 5), /* destination address: is ... */ BPF_STMT(BPF_LD+BPF_W+BPF_ABS, offsetof(struct iphdr, daddr)),