Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ea3a66ff5ae41daa1d1aa789140a70415eaf7b46
Commit:     ea3a66ff5ae41daa1d1aa789140a70415eaf7b46
Parent:     9d6023ab8b97f5074f9007c92d38fef9ae04e56b
Author:     Patrick McHardy <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 5 01:30:02 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 14:56:21 2008 -0800

    [NETFILTER]: nfnetlink_queue: use endianness-aware attribute functions
    
    Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/netfilter/nfnetlink_queue.c |   60 +++++++++++++++------------------------
 1 files changed, 23 insertions(+), 37 deletions(-)

diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index de48fd3..436b442 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -215,7 +215,6 @@ nfqnl_build_packet_message(struct nfqnl_instance *queue,
        struct sk_buff *entskb = entry->skb;
        struct net_device *indev;
        struct net_device *outdev;
-       __be32 tmp_uint;
 
        size =    NLMSG_ALIGN(sizeof(struct nfgenmsg))
                + nla_total_size(sizeof(struct nfqnl_msg_packet_hdr))
@@ -286,69 +285,57 @@ nfqnl_build_packet_message(struct nfqnl_instance *queue,
 
        indev = entry->indev;
        if (indev) {
-               tmp_uint = htonl(indev->ifindex);
 #ifndef CONFIG_BRIDGE_NETFILTER
-               NLA_PUT(skb, NFQA_IFINDEX_INDEV, sizeof(tmp_uint), &tmp_uint);
+               NLA_PUT_BE32(skb, NFQA_IFINDEX_INDEV, htonl(indev->ifindex));
 #else
                if (entry->pf == PF_BRIDGE) {
                        /* Case 1: indev is physical input device, we need to
                         * look for bridge group (when called from
                         * netfilter_bridge) */
-                       NLA_PUT(skb, NFQA_IFINDEX_PHYSINDEV, sizeof(tmp_uint),
-                               &tmp_uint);
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_PHYSINDEV,
+                                    htonl(indev->ifindex));
                        /* this is the bridge group "brX" */
-                       tmp_uint = htonl(indev->br_port->br->dev->ifindex);
-                       NLA_PUT(skb, NFQA_IFINDEX_INDEV, sizeof(tmp_uint),
-                               &tmp_uint);
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_INDEV,
+                                    htonl(indev->br_port->br->dev->ifindex));
                } else {
                        /* Case 2: indev is bridge group, we need to look for
                         * physical device (when called from ipv4) */
-                       NLA_PUT(skb, NFQA_IFINDEX_INDEV, sizeof(tmp_uint),
-                               &tmp_uint);
-                       if (entskb->nf_bridge
-                           && entskb->nf_bridge->physindev) {
-                               tmp_uint = 
htonl(entskb->nf_bridge->physindev->ifindex);
-                               NLA_PUT(skb, NFQA_IFINDEX_PHYSINDEV,
-                                       sizeof(tmp_uint), &tmp_uint);
-                       }
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_INDEV,
+                                    htonl(indev->ifindex));
+                       if (entskb->nf_bridge && entskb->nf_bridge->physindev)
+                               NLA_PUT_BE32(skb, NFQA_IFINDEX_PHYSINDEV,
+                                            
htonl(entskb->nf_bridge->physindev->ifindex));
                }
 #endif
        }
 
        if (outdev) {
-               tmp_uint = htonl(outdev->ifindex);
 #ifndef CONFIG_BRIDGE_NETFILTER
-               NLA_PUT(skb, NFQA_IFINDEX_OUTDEV, sizeof(tmp_uint), &tmp_uint);
+               NLA_PUT_BE32(skb, NFQA_IFINDEX_OUTDEV, htonl(outdev->ifindex));
 #else
                if (entry->pf == PF_BRIDGE) {
                        /* Case 1: outdev is physical output device, we need to
                         * look for bridge group (when called from
                         * netfilter_bridge) */
-                       NLA_PUT(skb, NFQA_IFINDEX_PHYSOUTDEV, sizeof(tmp_uint),
-                               &tmp_uint);
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_PHYSOUTDEV,
+                                    htonl(outdev->ifindex));
                        /* this is the bridge group "brX" */
-                       tmp_uint = htonl(outdev->br_port->br->dev->ifindex);
-                       NLA_PUT(skb, NFQA_IFINDEX_OUTDEV, sizeof(tmp_uint),
-                               &tmp_uint);
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_OUTDEV,
+                                    htonl(outdev->br_port->br->dev->ifindex));
                } else {
                        /* Case 2: outdev is bridge group, we need to look for
                         * physical output device (when called from ipv4) */
-                       NLA_PUT(skb, NFQA_IFINDEX_OUTDEV, sizeof(tmp_uint),
-                               &tmp_uint);
-                       if (entskb->nf_bridge
-                           && entskb->nf_bridge->physoutdev) {
-                               tmp_uint = 
htonl(entskb->nf_bridge->physoutdev->ifindex);
-                               NLA_PUT(skb, NFQA_IFINDEX_PHYSOUTDEV,
-                                       sizeof(tmp_uint), &tmp_uint);
-                       }
+                       NLA_PUT_BE32(skb, NFQA_IFINDEX_OUTDEV,
+                                    htonl(outdev->ifindex));
+                       if (entskb->nf_bridge && entskb->nf_bridge->physoutdev)
+                               NLA_PUT_BE32(skb, NFQA_IFINDEX_PHYSOUTDEV,
+                                            
htonl(entskb->nf_bridge->physoutdev->ifindex));
                }
 #endif
        }
 
-       if (entskb->mark) {
-               tmp_uint = htonl(entskb->mark);
-               NLA_PUT(skb, NFQA_MARK, sizeof(u_int32_t), &tmp_uint);
-       }
+       if (entskb->mark)
+               NLA_PUT_BE32(skb, NFQA_MARK, htonl(entskb->mark));
 
        if (indev && entskb->dev) {
                struct nfqnl_msg_packet_hw phw;
@@ -670,8 +657,7 @@ nfqnl_recv_verdict(struct sock *ctnl, struct sk_buff *skb,
        }
 
        if (nfqa[NFQA_MARK])
-               entry->skb->mark = ntohl(*(__be32 *)
-                                        nla_data(nfqa[NFQA_MARK]));
+               entry->skb->mark = ntohl(nla_get_be32(nfqa[NFQA_MARK]));
 
        nf_reinject(entry, verdict);
        return 0;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to