From a8624f0da19e40bc39393b50db104ddc13149b6e Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 20 Jan 2014 16:16:54 +0000 Subject: [PATCH] Fix payload address calculation. Thanks to Sebastian Huber. --- bpf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bpf.c b/bpf.c index 67fd5056..59d17d92 100644 --- a/bpf.c +++ b/bpf.c @@ -197,7 +197,8 @@ ipv4_getrawpacket(struct interface *ifp, int protocol, if (state->buffer_pos + packet.bh_caplen + packet.bh_hdrlen > state->buffer_len) goto next; /* Packet beyond buffer, drop. */ - payload = state->buffer + packet.bh_hdrlen + ETHER_HDR_LEN; + payload = state->buffer + state->buffer_pos + + packet.bh_hdrlen + ETHER_HDR_LEN; bytes = packet.bh_caplen - ETHER_HDR_LEN; if (bytes > len) bytes = len; -- 2.47.3