diff options
| -rw-r--r-- | net/netfilter/nf_tables_api.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index 452f8a42d5e6..fabc82c98871 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -2315,15 +2315,14 @@ static struct nft_hook *nft_netdev_hook_alloc(struct net *net, int err; hook = kzalloc(sizeof(struct nft_hook), GFP_KERNEL_ACCOUNT); - if (!hook) { - err = -ENOMEM; - goto err_hook_alloc; - } + if (!hook) + return ERR_PTR(-ENOMEM); + INIT_LIST_HEAD(&hook->ops_list); err = nla_strscpy(hook->ifname, attr, IFNAMSIZ); if (err < 0) - goto err_hook_dev; + goto err_hook_free; hook->ifnamelen = nla_len(attr); @@ -2334,22 +2333,21 @@ static struct nft_hook *nft_netdev_hook_alloc(struct net *net, dev = __dev_get_by_name(net, hook->ifname); if (!dev) { err = -ENOENT; - goto err_hook_dev; + goto err_hook_free; } ops = kzalloc(sizeof(struct nf_hook_ops), GFP_KERNEL_ACCOUNT); if (!ops) { err = -ENOMEM; - goto err_hook_dev; + goto err_hook_free; } ops->dev = dev; list_add_tail(&ops->list, &hook->ops_list); return hook; -err_hook_dev: +err_hook_free: kfree(hook); -err_hook_alloc: return ERR_PTR(err); } |
