diff options
| author | Thomas Graf <tgraf@suug.ch> | 2006-11-10 17:10:15 -0500 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:22:11 -0500 |
| commit | 339bf98ffc6a8d8eb16fc532ac57ffbced2f8a68 (patch) | |
| tree | 499ad948863d2753ca10283dcf006ad28954538e /net/netlabel | |
| parent | a94f723d595ee085f81b1788d18e031af7eeba91 (diff) | |
[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>
Diffstat (limited to 'net/netlabel')
| -rw-r--r-- | net/netlabel/netlabel_cipso_v4.c | 2 | ||||
| -rw-r--r-- | net/netlabel/netlabel_mgmt.c | 4 | ||||
| -rw-r--r-- | net/netlabel/netlabel_unlabeled.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/net/netlabel/netlabel_cipso_v4.c b/net/netlabel/netlabel_cipso_v4.c index a6ce1d6d5c..f1788bd290 100644 --- a/net/netlabel/netlabel_cipso_v4.c +++ b/net/netlabel/netlabel_cipso_v4.c | |||
| @@ -452,7 +452,7 @@ static int netlbl_cipsov4_list(struct sk_buff *skb, struct genl_info *info) | |||
| 452 | } | 452 | } |
| 453 | 453 | ||
| 454 | list_start: | 454 | list_start: |
| 455 | ans_skb = nlmsg_new(NLMSG_GOODSIZE * nlsze_mult, GFP_KERNEL); | 455 | ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE * nlsze_mult, GFP_KERNEL); |
| 456 | if (ans_skb == NULL) { | 456 | if (ans_skb == NULL) { |
| 457 | ret_val = -ENOMEM; | 457 | ret_val = -ENOMEM; |
| 458 | goto list_failure; | 458 | goto list_failure; |
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c index 53c9079ad2..c529622ff0 100644 --- a/net/netlabel/netlabel_mgmt.c +++ b/net/netlabel/netlabel_mgmt.c | |||
| @@ -356,7 +356,7 @@ static int netlbl_mgmt_listdef(struct sk_buff *skb, struct genl_info *info) | |||
| 356 | void *data; | 356 | void *data; |
| 357 | struct netlbl_dom_map *entry; | 357 | struct netlbl_dom_map *entry; |
| 358 | 358 | ||
| 359 | ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); | 359 | ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); |
| 360 | if (ans_skb == NULL) | 360 | if (ans_skb == NULL) |
| 361 | return -ENOMEM; | 361 | return -ENOMEM; |
| 362 | data = netlbl_netlink_hdr_put(ans_skb, | 362 | data = netlbl_netlink_hdr_put(ans_skb, |
| @@ -492,7 +492,7 @@ static int netlbl_mgmt_version(struct sk_buff *skb, struct genl_info *info) | |||
| 492 | struct sk_buff *ans_skb = NULL; | 492 | struct sk_buff *ans_skb = NULL; |
| 493 | void *data; | 493 | void *data; |
| 494 | 494 | ||
| 495 | ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); | 495 | ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); |
| 496 | if (ans_skb == NULL) | 496 | if (ans_skb == NULL) |
| 497 | return -ENOMEM; | 497 | return -ENOMEM; |
| 498 | data = netlbl_netlink_hdr_put(ans_skb, | 498 | data = netlbl_netlink_hdr_put(ans_skb, |
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index 1833ad233b..219dccade4 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c | |||
| @@ -138,7 +138,7 @@ static int netlbl_unlabel_list(struct sk_buff *skb, struct genl_info *info) | |||
| 138 | struct sk_buff *ans_skb; | 138 | struct sk_buff *ans_skb; |
| 139 | void *data; | 139 | void *data; |
| 140 | 140 | ||
| 141 | ans_skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); | 141 | ans_skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); |
| 142 | if (ans_skb == NULL) | 142 | if (ans_skb == NULL) |
| 143 | goto list_failure; | 143 | goto list_failure; |
| 144 | data = netlbl_netlink_hdr_put(ans_skb, | 144 | data = netlbl_netlink_hdr_put(ans_skb, |
