|
@@ -401,7 +401,8 @@ nf_tables_chain_type_lookup(const struct nft_af_info *afi,
|
|
|
}
|
|
|
|
|
|
static const struct nla_policy nft_table_policy[NFTA_TABLE_MAX + 1] = {
|
|
|
- [NFTA_TABLE_NAME] = { .type = NLA_STRING },
|
|
|
+ [NFTA_TABLE_NAME] = { .type = NLA_STRING,
|
|
|
+ .len = NFT_TABLE_MAXNAMELEN - 1 },
|
|
|
[NFTA_TABLE_FLAGS] = { .type = NLA_U32 },
|
|
|
};
|
|
|
|
|
@@ -686,13 +687,13 @@ static int nf_tables_newtable(struct sock *nlsk, struct sk_buff *skb,
|
|
|
if (!try_module_get(afi->owner))
|
|
|
return -EAFNOSUPPORT;
|
|
|
|
|
|
- table = kzalloc(sizeof(*table) + nla_len(name), GFP_KERNEL);
|
|
|
+ table = kzalloc(sizeof(*table), GFP_KERNEL);
|
|
|
if (table == NULL) {
|
|
|
module_put(afi->owner);
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
- nla_strlcpy(table->name, name, nla_len(name));
|
|
|
+ nla_strlcpy(table->name, name, NFT_TABLE_MAXNAMELEN);
|
|
|
INIT_LIST_HEAD(&table->chains);
|
|
|
INIT_LIST_HEAD(&table->sets);
|
|
|
table->flags = flags;
|