[NETLINK]: Do precise netlink message allocations where possible
Account for the netlink message header size directly in nlmsg_new() instead of relying on the caller calculate it correctly. Replaces error handling of message construction functions when constructing notifications with bug traps since a failure implies a bug in calculating the size of the skb. Signed-off-by: Thomas Graf <tgraf@suug.ch> Acked-by: Paul Moore <paul.moore@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a94f723d59
commit
339bf98ffc
@@ -452,7 +452,7 @@ static int netlbl_cipsov4_list(struct sk_buff *skb, struct genl_info *info)
|
||||
}
|
||||
|
||||
list_start:
|
||||
ans_skb = nlmsg_new(NLMSG_GOODSIZE * nlsze_mult, GFP_KERNEL);
|
||||
ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE * nlsze_mult, GFP_KERNEL);
|
||||
if (ans_skb == NULL) {
|
||||
ret_val = -ENOMEM;
|
||||
goto list_failure;
|
||||
|
@@ -356,7 +356,7 @@ static int netlbl_mgmt_listdef(struct sk_buff *skb, struct genl_info *info)
|
||||
void *data;
|
||||
struct netlbl_dom_map *entry;
|
||||
|
||||
ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
|
||||
ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (ans_skb == NULL)
|
||||
return -ENOMEM;
|
||||
data = netlbl_netlink_hdr_put(ans_skb,
|
||||
@@ -492,7 +492,7 @@ static int netlbl_mgmt_version(struct sk_buff *skb, struct genl_info *info)
|
||||
struct sk_buff *ans_skb = NULL;
|
||||
void *data;
|
||||
|
||||
ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
|
||||
ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (ans_skb == NULL)
|
||||
return -ENOMEM;
|
||||
data = netlbl_netlink_hdr_put(ans_skb,
|
||||
|
@@ -138,7 +138,7 @@ static int netlbl_unlabel_list(struct sk_buff *skb, struct genl_info *info)
|
||||
struct sk_buff *ans_skb;
|
||||
void *data;
|
||||
|
||||
ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
|
||||
ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
||||
if (ans_skb == NULL)
|
||||
goto list_failure;
|
||||
data = netlbl_netlink_hdr_put(ans_skb,
|
||||
|
Reference in New Issue
Block a user