farp: Fix BPF jump false offset
authorVolker RĂ¼melin <vr_strongswan@t-online.de>
Sun, 30 Oct 2016 21:15:04 +0000 (22:15 +0100)
committerTobias Brunner <tobias@strongswan.org>
Mon, 31 Oct 2016 13:46:14 +0000 (14:46 +0100)
Jump to BPF_STMT(BPF_RET+BPF_K, 0) if protocol_size != 4

src/libcharon/plugins/farp/farp_spoofer.c

index c2715bd..5753f79 100644 (file)
@@ -143,7 +143,7 @@ farp_spoofer_t *farp_spoofer_create(farp_listener_t *listener)
                BPF_STMT(BPF_LD+BPF_B+BPF_ABS, offsetof(arp_t, hardware_size)),
                BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 6, 0, 7),
                BPF_STMT(BPF_LD+BPF_B+BPF_ABS, offsetof(arp_t, protocol_size)),
-               BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 4, 0, 4),
+               BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 4, 0, 5),
                BPF_STMT(BPF_LD+BPF_H+BPF_ABS, offsetof(arp_t, opcode)),
                BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ARPOP_REQUEST, 0, 3),
                BPF_STMT(BPF_LD+BPF_W+BPF_LEN, 0),