From b8a791f2809af840da85d7a9ff9b90f5addbfb3a Mon Sep 17 00:00:00 2001 From: Serguei Makarov Date: Thu, 9 Aug 2012 15:20:54 -0400 Subject: [PATCH] PR14164: fix missing endianness conversion in ARP header extractor. --- tapset/linux/netfilter.stp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tapset/linux/netfilter.stp b/tapset/linux/netfilter.stp index 67fc62f2c..7a568caa6 100644 --- a/tapset/linux/netfilter.stp +++ b/tapset/linux/netfilter.stp @@ -402,17 +402,15 @@ probe netfilter.ipv6.post_routing @netfilter_ip6_setup } -# XXX: include functionality to parse ARP packet contents -# XXX: think of some way to comprehensively study bridged packets? - @define netfilter_arp_setup %( +# XXX: include functionality to parse ARP packet contents arphdr = __get_skb_arphdr($skb) family = %{ /* pure */ NF_ARP %} // from linux/netfilter_arp.h - ar_hrd = @cast(arphdr, "struct arphdr")->ar_hrd - ar_pro = @cast(arphdr, "struct arphdr")->ar_pro + ar_hrd = ntohs(@cast(arphdr, "struct arphdr")->ar_hrd) + ar_pro = ntohs(@cast(arphdr, "struct arphdr")->ar_pro) ar_hln = @cast(arphdr, "struct arphdr")->ar_hln ar_pln = @cast(arphdr, "struct arphdr")->ar_pln - ar_op = @cast(arphdr, "struct arphdr")->ar_op + ar_op = ntohs(@cast(arphdr, "struct arphdr")->ar_op) length = @cast($skb, "struct sk_buff")->len %) @@ -499,6 +497,8 @@ probe netfilter.arp.forward = netfilter.hook("NF_ARP_FORWARD").pf("NFPROTO_ARP") @netfilter_arp_setup } +# XXX: think of some way to comprehensively study bridged packets? + /** * probe netfilter.bridge.pre_routing -- Called before a bridging packet is routed * @pf: Protocol family -- always "bridge" -- 2.43.5