summaryrefslogtreecommitdiff
path: root/device
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2009-10-14 10:20:58 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2009-10-14 10:20:58 +0200
commitbeb6094a963a090a0cdd8b7f519dca0c4a0296a3 (patch)
treeeaaabb4255e539a2b4bd0d24d5325e7e061d68cf /device
parentfa6c711d2e8f696457ee1a12e49f413b98a175db (diff)
parentc1674eb05b5c6ceacf74800dd5b564102fa890f9 (diff)
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
Diffstat (limited to 'device')
-rw-r--r--device/net_io.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/device/net_io.c b/device/net_io.c
index a6f842e..2311599 100644
--- a/device/net_io.c
+++ b/device/net_io.c
@@ -771,13 +771,16 @@ net_filter(kmsg, send_list)
if ((infp->filter[0] & NETF_TYPE_MASK) == NETF_BPF) {
ret_count = bpf_do_filter(infp, net_kmsg(kmsg)->packet
+ sizeof(struct packet_header),
- count, net_kmsg(kmsg)->header,
+ count - sizeof(struct packet_header),
+ net_kmsg(kmsg)->header,
ifp->if_header_size, &hash_headp,
&entp);
if (entp == (net_hash_entry_t) 0)
dest = infp->rcv_port;
else
dest = entp->rcv_port;
+ if (ret_count)
+ ret_count += sizeof(struct packet_header);
} else {
ret_count = net_do_filter(infp, net_kmsg(kmsg)->packet, count,
net_kmsg(kmsg)->header);