summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-04-15 10:47:13 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-04-15 10:47:13 -0700
commit166c4ff67ccc5959c7edc7d8d40e85373bb78d02 (patch)
tree247e70bd78764de2a95aa9badca217282ce2580a
parentca566018882bbec4fbc26ba6921062db18bfcf40 (diff)
downloadquagga-166c4ff67ccc5959c7edc7d8d40e85373bb78d02.tar.bz2
quagga-166c4ff67ccc5959c7edc7d8d40e85373bb78d02.tar.xz
Fix packet filter state machine
The filter rules were incorrect (jump to wrong offset), so the kernel would not accept them. Fixes: 2570
-rw-r--r--zebra/rt_netlink.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 07e473bc..273c3121 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1951,7 +1951,7 @@ static void netlink_install_filter (int sock)
BPF_STMT(BPF_LD|BPF_ABS|BPF_B,
sizeof(struct nlmsghdr) + offsetof(struct rtmsg, rtm_protocol)),
/* 2: ldb [23] */
- BPF_JUMP(BPF_JMP+ BPF_B, RTPROT_ZEBRA, 2, 0),
+ BPF_JUMP(BPF_JMP+ BPF_B, RTPROT_ZEBRA, 0, 1),
/* 3: jeq 0xb jt 4 jf 5 */
BPF_STMT(BPF_RET|BPF_K, 0), /* 4: ret 0 */
BPF_STMT(BPF_RET|BPF_K, 0xffff), /* 5: ret 0xffff */