[NETFILTER]: nfnetlink_log: use netlink policy
Patrick McHardy [Fri, 28 Sep 2007 21:39:09 +0000 (14:39 -0700)]
Also remove unused nfula_min array.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/netfilter/nfnetlink_log.c

index b656648..a90a26b 100644 (file)
@@ -733,29 +733,13 @@ static struct nf_logger nfulnl_logger = {
        .me     = THIS_MODULE,
 };
 
-static const int nfula_min[NFULA_MAX+1] = {
-       [NFULA_PACKET_HDR]      = sizeof(struct nfulnl_msg_packet_hdr),
-       [NFULA_MARK]            = sizeof(u_int32_t),
-       [NFULA_TIMESTAMP]       = sizeof(struct nfulnl_msg_packet_timestamp),
-       [NFULA_IFINDEX_INDEV]   = sizeof(u_int32_t),
-       [NFULA_IFINDEX_OUTDEV]  = sizeof(u_int32_t),
-       [NFULA_IFINDEX_PHYSINDEV]       = sizeof(u_int32_t),
-       [NFULA_IFINDEX_PHYSOUTDEV]      = sizeof(u_int32_t),
-       [NFULA_HWADDR]          = sizeof(struct nfulnl_msg_packet_hw),
-       [NFULA_PAYLOAD]         = 0,
-       [NFULA_PREFIX]          = 0,
-       [NFULA_UID]             = sizeof(u_int32_t),
-       [NFULA_SEQ]             = sizeof(u_int32_t),
-       [NFULA_SEQ_GLOBAL]      = sizeof(u_int32_t),
-};
-
-static const int nfula_cfg_min[NFULA_CFG_MAX+1] = {
-       [NFULA_CFG_CMD]         = sizeof(struct nfulnl_msg_config_cmd),
-       [NFULA_CFG_MODE]        = sizeof(struct nfulnl_msg_config_mode),
-       [NFULA_CFG_TIMEOUT]     = sizeof(u_int32_t),
-       [NFULA_CFG_QTHRESH]     = sizeof(u_int32_t),
-       [NFULA_CFG_NLBUFSIZ]    = sizeof(u_int32_t),
-       [NFULA_CFG_FLAGS]       = sizeof(u_int16_t),
+static const struct nla_policy nfula_cfg_policy[NFULA_CFG_MAX+1] = {
+       [NFULA_CFG_CMD]         = { .len = sizeof(struct nfulnl_msg_config_cmd) },
+       [NFULA_CFG_MODE]        = { .len = sizeof(struct nfulnl_msg_config_mode) },
+       [NFULA_CFG_TIMEOUT]     = { .type = NLA_U32 },
+       [NFULA_CFG_QTHRESH]     = { .type = NLA_U32 },
+       [NFULA_CFG_NLBUFSIZ]    = { .type = NLA_U32 },
+       [NFULA_CFG_FLAGS]       = { .type = NLA_U16 },
 };
 
 static int
@@ -769,11 +753,6 @@ nfulnl_recv_config(struct sock *ctnl, struct sk_buff *skb,
 
        UDEBUG("entering for msg %u\n", NFNL_MSG_TYPE(nlh->nlmsg_type));
 
-       if (nlattr_bad_size(nfula, NFULA_CFG_MAX, nfula_cfg_min)) {
-               UDEBUG("bad attribute size\n");
-               return -EINVAL;
-       }
-
        inst = instance_lookup_get(group_num);
        if (nfula[NFULA_CFG_CMD]) {
                u_int8_t pf = nfmsg->nfgen_family;
@@ -886,7 +865,8 @@ static const struct nfnl_callback nfulnl_cb[NFULNL_MSG_MAX] = {
        [NFULNL_MSG_PACKET]     = { .call = nfulnl_recv_unsupp,
                                    .attr_count = NFULA_MAX, },
        [NFULNL_MSG_CONFIG]     = { .call = nfulnl_recv_config,
-                                   .attr_count = NFULA_CFG_MAX, },
+                                   .attr_count = NFULA_CFG_MAX,
+                                   .policy = nfula_cfg_policy },
 };
 
 static const struct nfnetlink_subsystem nfulnl_subsys = {