hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/netlabel/netlabel_cipso_v4.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * NetLabel CIPSO/IPv4 Support
34 *
....@@ -6,25 +7,10 @@
67 * protocols such as CIPSO and RIPSO.
78 *
89 * Author: Paul Moore <paul@paul-moore.com>
9
- *
1010 */
1111
1212 /*
1313 * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
14
- *
15
- * This program is free software; you can redistribute it and/or modify
16
- * it under the terms of the GNU General Public License as published by
17
- * the Free Software Foundation; either version 2 of the License, or
18
- * (at your option) any later version.
19
- *
20
- * This program is distributed in the hope that it will be useful,
21
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
23
- * the GNU General Public License for more details.
24
- *
25
- * You should have received a copy of the GNU General Public License
26
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
27
- *
2814 */
2915
3016 #include <linux/types.h>
....@@ -99,9 +85,10 @@
9985
10086 doi_def->doi = nla_get_u32(info->attrs[NLBL_CIPSOV4_A_DOI]);
10187
102
- if (nla_validate_nested(info->attrs[NLBL_CIPSOV4_A_TAGLST],
103
- NLBL_CIPSOV4_A_MAX,
104
- netlbl_cipsov4_genl_policy, NULL) != 0)
88
+ if (nla_validate_nested_deprecated(info->attrs[NLBL_CIPSOV4_A_TAGLST],
89
+ NLBL_CIPSOV4_A_MAX,
90
+ netlbl_cipsov4_genl_policy,
91
+ NULL) != 0)
10592 return -EINVAL;
10693
10794 nla_for_each_nested(nla, info->attrs[NLBL_CIPSOV4_A_TAGLST], nla_rem)
....@@ -146,9 +133,10 @@
146133 !info->attrs[NLBL_CIPSOV4_A_MLSLVLLST])
147134 return -EINVAL;
148135
149
- if (nla_validate_nested(info->attrs[NLBL_CIPSOV4_A_MLSLVLLST],
150
- NLBL_CIPSOV4_A_MAX,
151
- netlbl_cipsov4_genl_policy, NULL) != 0)
136
+ if (nla_validate_nested_deprecated(info->attrs[NLBL_CIPSOV4_A_MLSLVLLST],
137
+ NLBL_CIPSOV4_A_MAX,
138
+ netlbl_cipsov4_genl_policy,
139
+ NULL) != 0)
152140 return -EINVAL;
153141
154142 doi_def = kmalloc(sizeof(*doi_def), GFP_KERNEL);
....@@ -170,9 +158,10 @@
170158 info->attrs[NLBL_CIPSOV4_A_MLSLVLLST],
171159 nla_a_rem)
172160 if (nla_type(nla_a) == NLBL_CIPSOV4_A_MLSLVL) {
173
- if (nla_validate_nested(nla_a, NLBL_CIPSOV4_A_MAX,
174
- netlbl_cipsov4_genl_policy,
175
- NULL) != 0)
161
+ if (nla_validate_nested_deprecated(nla_a,
162
+ NLBL_CIPSOV4_A_MAX,
163
+ netlbl_cipsov4_genl_policy,
164
+ NULL) != 0)
176165 goto add_std_failure;
177166 nla_for_each_nested(nla_b, nla_a, nla_b_rem)
178167 switch (nla_type(nla_b)) {
....@@ -234,19 +223,20 @@
234223 }
235224
236225 if (info->attrs[NLBL_CIPSOV4_A_MLSCATLST]) {
237
- if (nla_validate_nested(info->attrs[NLBL_CIPSOV4_A_MLSCATLST],
238
- NLBL_CIPSOV4_A_MAX,
239
- netlbl_cipsov4_genl_policy, NULL) != 0)
226
+ if (nla_validate_nested_deprecated(info->attrs[NLBL_CIPSOV4_A_MLSCATLST],
227
+ NLBL_CIPSOV4_A_MAX,
228
+ netlbl_cipsov4_genl_policy,
229
+ NULL) != 0)
240230 goto add_std_failure;
241231
242232 nla_for_each_nested(nla_a,
243233 info->attrs[NLBL_CIPSOV4_A_MLSCATLST],
244234 nla_a_rem)
245235 if (nla_type(nla_a) == NLBL_CIPSOV4_A_MLSCAT) {
246
- if (nla_validate_nested(nla_a,
247
- NLBL_CIPSOV4_A_MAX,
248
- netlbl_cipsov4_genl_policy,
249
- NULL) != 0)
236
+ if (nla_validate_nested_deprecated(nla_a,
237
+ NLBL_CIPSOV4_A_MAX,
238
+ netlbl_cipsov4_genl_policy,
239
+ NULL) != 0)
250240 goto add_std_failure;
251241 nla_for_each_nested(nla_b, nla_a, nla_b_rem)
252242 switch (nla_type(nla_b)) {
....@@ -498,7 +488,7 @@
498488 if (ret_val != 0)
499489 goto list_failure_lock;
500490
501
- nla_a = nla_nest_start(ans_skb, NLBL_CIPSOV4_A_TAGLST);
491
+ nla_a = nla_nest_start_noflag(ans_skb, NLBL_CIPSOV4_A_TAGLST);
502492 if (nla_a == NULL) {
503493 ret_val = -ENOMEM;
504494 goto list_failure_lock;
....@@ -517,7 +507,8 @@
517507
518508 switch (doi_def->type) {
519509 case CIPSO_V4_MAP_TRANS:
520
- nla_a = nla_nest_start(ans_skb, NLBL_CIPSOV4_A_MLSLVLLST);
510
+ nla_a = nla_nest_start_noflag(ans_skb,
511
+ NLBL_CIPSOV4_A_MLSLVLLST);
521512 if (nla_a == NULL) {
522513 ret_val = -ENOMEM;
523514 goto list_failure_lock;
....@@ -529,7 +520,8 @@
529520 CIPSO_V4_INV_LVL)
530521 continue;
531522
532
- nla_b = nla_nest_start(ans_skb, NLBL_CIPSOV4_A_MLSLVL);
523
+ nla_b = nla_nest_start_noflag(ans_skb,
524
+ NLBL_CIPSOV4_A_MLSLVL);
533525 if (nla_b == NULL) {
534526 ret_val = -ENOMEM;
535527 goto list_retry;
....@@ -548,7 +540,8 @@
548540 }
549541 nla_nest_end(ans_skb, nla_a);
550542
551
- nla_a = nla_nest_start(ans_skb, NLBL_CIPSOV4_A_MLSCATLST);
543
+ nla_a = nla_nest_start_noflag(ans_skb,
544
+ NLBL_CIPSOV4_A_MLSCATLST);
552545 if (nla_a == NULL) {
553546 ret_val = -ENOMEM;
554547 goto list_retry;
....@@ -560,7 +553,8 @@
560553 CIPSO_V4_INV_CAT)
561554 continue;
562555
563
- nla_b = nla_nest_start(ans_skb, NLBL_CIPSOV4_A_MLSCAT);
556
+ nla_b = nla_nest_start_noflag(ans_skb,
557
+ NLBL_CIPSOV4_A_MLSCAT);
564558 if (nla_b == NULL) {
565559 ret_val = -ENOMEM;
566560 goto list_retry;
....@@ -733,32 +727,32 @@
733727 * NetLabel Generic NETLINK Command Definitions
734728 */
735729
736
-static const struct genl_ops netlbl_cipsov4_ops[] = {
730
+static const struct genl_small_ops netlbl_cipsov4_ops[] = {
737731 {
738732 .cmd = NLBL_CIPSOV4_C_ADD,
733
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
739734 .flags = GENL_ADMIN_PERM,
740
- .policy = netlbl_cipsov4_genl_policy,
741735 .doit = netlbl_cipsov4_add,
742736 .dumpit = NULL,
743737 },
744738 {
745739 .cmd = NLBL_CIPSOV4_C_REMOVE,
740
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
746741 .flags = GENL_ADMIN_PERM,
747
- .policy = netlbl_cipsov4_genl_policy,
748742 .doit = netlbl_cipsov4_remove,
749743 .dumpit = NULL,
750744 },
751745 {
752746 .cmd = NLBL_CIPSOV4_C_LIST,
747
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
753748 .flags = 0,
754
- .policy = netlbl_cipsov4_genl_policy,
755749 .doit = netlbl_cipsov4_list,
756750 .dumpit = NULL,
757751 },
758752 {
759753 .cmd = NLBL_CIPSOV4_C_LISTALL,
754
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
760755 .flags = 0,
761
- .policy = netlbl_cipsov4_genl_policy,
762756 .doit = NULL,
763757 .dumpit = netlbl_cipsov4_listall,
764758 },
....@@ -769,9 +763,10 @@
769763 .name = NETLBL_NLTYPE_CIPSOV4_NAME,
770764 .version = NETLBL_PROTO_VERSION,
771765 .maxattr = NLBL_CIPSOV4_A_MAX,
766
+ .policy = netlbl_cipsov4_genl_policy,
772767 .module = THIS_MODULE,
773
- .ops = netlbl_cipsov4_ops,
774
- .n_ops = ARRAY_SIZE(netlbl_cipsov4_ops),
768
+ .small_ops = netlbl_cipsov4_ops,
769
+ .n_small_ops = ARRAY_SIZE(netlbl_cipsov4_ops),
775770 };
776771
777772 /*