diff options
author | Harald Welte <laforge@netfilter.org> | 2005-11-09 15:59:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-11-09 15:59:13 -0500 |
commit | a2506c04322ca266fe2f9bd7d02a67b1972da611 (patch) | |
tree | d7ba0e2ea3e8fc2f6215676c6ca6682b7b847f1b /net/ipv4 | |
parent | eaae4fa45e0f4cd1da0f00ae93551edb1002b2b9 (diff) |
[NETFILTER] nfnetlink: nfattr_parse() can never fail, make it void
nfattr_parse (and thus nfattr_parse_nested) always returns success. So we
can make them 'void' and remove all the checking at the caller side.
Based on original patch by Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/netfilter/ip_conntrack_netlink.c | 45 | ||||
-rw-r--r-- | net/ipv4/netfilter/ip_conntrack_proto_tcp.c | 6 |
2 files changed, 9 insertions, 42 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_netlink.c b/net/ipv4/netfilter/ip_conntrack_netlink.c index 02f303cf201e..838262e17376 100644 --- a/net/ipv4/netfilter/ip_conntrack_netlink.c +++ b/net/ipv4/netfilter/ip_conntrack_netlink.c | |||
@@ -482,9 +482,7 @@ ctnetlink_parse_tuple_ip(struct nfattr *attr, struct ip_conntrack_tuple *tuple) | |||
482 | 482 | ||
483 | DEBUGP("entered %s\n", __FUNCTION__); | 483 | DEBUGP("entered %s\n", __FUNCTION__); |
484 | 484 | ||
485 | 485 | nfattr_parse_nested(tb, CTA_IP_MAX, attr); | |
486 | if (nfattr_parse_nested(tb, CTA_IP_MAX, attr) < 0) | ||
487 | goto nfattr_failure; | ||
488 | 486 | ||
489 | if (nfattr_bad_size(tb, CTA_IP_MAX, cta_min_ip)) | 487 | if (nfattr_bad_size(tb, CTA_IP_MAX, cta_min_ip)) |
490 | return -EINVAL; | 488 | return -EINVAL; |
@@ -500,9 +498,6 @@ ctnetlink_parse_tuple_ip(struct nfattr *attr, struct ip_conntrack_tuple *tuple) | |||
500 | DEBUGP("leaving\n"); | 498 | DEBUGP("leaving\n"); |
501 | 499 | ||
502 | return 0; | 500 | return 0; |
503 | |||
504 | nfattr_failure: | ||
505 | return -1; | ||
506 | } | 501 | } |
507 | 502 | ||
508 | static const int cta_min_proto[CTA_PROTO_MAX] = { | 503 | static const int cta_min_proto[CTA_PROTO_MAX] = { |
@@ -524,8 +519,7 @@ ctnetlink_parse_tuple_proto(struct nfattr *attr, | |||
524 | 519 | ||
525 | DEBUGP("entered %s\n", __FUNCTION__); | 520 | DEBUGP("entered %s\n", __FUNCTION__); |
526 | 521 | ||
527 | if (nfattr_parse_nested(tb, CTA_PROTO_MAX, attr) < 0) | 522 | nfattr_parse_nested(tb, CTA_PROTO_MAX, attr); |
528 | goto nfattr_failure; | ||
529 | 523 | ||
530 | if (nfattr_bad_size(tb, CTA_PROTO_MAX, cta_min_proto)) | 524 | if (nfattr_bad_size(tb, CTA_PROTO_MAX, cta_min_proto)) |
531 | return -EINVAL; | 525 | return -EINVAL; |
@@ -542,9 +536,6 @@ ctnetlink_parse_tuple_proto(struct nfattr *attr, | |||
542 | } | 536 | } |
543 | 537 | ||
544 | return ret; | 538 | return ret; |
545 | |||
546 | nfattr_failure: | ||
547 | return -1; | ||
548 | } | 539 | } |
549 | 540 | ||
550 | static inline int | 541 | static inline int |
@@ -558,8 +549,7 @@ ctnetlink_parse_tuple(struct nfattr *cda[], struct ip_conntrack_tuple *tuple, | |||
558 | 549 | ||
559 | memset(tuple, 0, sizeof(*tuple)); | 550 | memset(tuple, 0, sizeof(*tuple)); |
560 | 551 | ||
561 | if (nfattr_parse_nested(tb, CTA_TUPLE_MAX, cda[type-1]) < 0) | 552 | nfattr_parse_nested(tb, CTA_TUPLE_MAX, cda[type-1]); |
562 | goto nfattr_failure; | ||
563 | 553 | ||
564 | if (!tb[CTA_TUPLE_IP-1]) | 554 | if (!tb[CTA_TUPLE_IP-1]) |
565 | return -EINVAL; | 555 | return -EINVAL; |
@@ -586,9 +576,6 @@ ctnetlink_parse_tuple(struct nfattr *cda[], struct ip_conntrack_tuple *tuple, | |||
586 | DEBUGP("leaving\n"); | 576 | DEBUGP("leaving\n"); |
587 | 577 | ||
588 | return 0; | 578 | return 0; |
589 | |||
590 | nfattr_failure: | ||
591 | return -1; | ||
592 | } | 579 | } |
593 | 580 | ||
594 | #ifdef CONFIG_IP_NF_NAT_NEEDED | 581 | #ifdef CONFIG_IP_NF_NAT_NEEDED |
@@ -606,11 +593,10 @@ static int ctnetlink_parse_nat_proto(struct nfattr *attr, | |||
606 | 593 | ||
607 | DEBUGP("entered %s\n", __FUNCTION__); | 594 | DEBUGP("entered %s\n", __FUNCTION__); |
608 | 595 | ||
609 | if (nfattr_parse_nested(tb, CTA_PROTONAT_MAX, attr) < 0) | 596 | nfattr_parse_nested(tb, CTA_PROTONAT_MAX, attr); |
610 | goto nfattr_failure; | ||
611 | 597 | ||
612 | if (nfattr_bad_size(tb, CTA_PROTONAT_MAX, cta_min_protonat)) | 598 | if (nfattr_bad_size(tb, CTA_PROTONAT_MAX, cta_min_protonat)) |
613 | goto nfattr_failure; | 599 | return -1; |
614 | 600 | ||
615 | npt = ip_nat_proto_find_get(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum); | 601 | npt = ip_nat_proto_find_get(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum); |
616 | if (!npt) | 602 | if (!npt) |
@@ -629,9 +615,6 @@ static int ctnetlink_parse_nat_proto(struct nfattr *attr, | |||
629 | 615 | ||
630 | DEBUGP("leaving\n"); | 616 | DEBUGP("leaving\n"); |
631 | return 0; | 617 | return 0; |
632 | |||
633 | nfattr_failure: | ||
634 | return -1; | ||
635 | } | 618 | } |
636 | 619 | ||
637 | static inline int | 620 | static inline int |
@@ -645,8 +628,7 @@ ctnetlink_parse_nat(struct nfattr *cda[], | |||
645 | 628 | ||
646 | memset(range, 0, sizeof(*range)); | 629 | memset(range, 0, sizeof(*range)); |
647 | 630 | ||
648 | if (nfattr_parse_nested(tb, CTA_NAT_MAX, cda[CTA_NAT-1]) < 0) | 631 | nfattr_parse_nested(tb, CTA_NAT_MAX, cda[CTA_NAT-1]); |
649 | goto nfattr_failure; | ||
650 | 632 | ||
651 | if (tb[CTA_NAT_MINIP-1]) | 633 | if (tb[CTA_NAT_MINIP-1]) |
652 | range->min_ip = *(u_int32_t *)NFA_DATA(tb[CTA_NAT_MINIP-1]); | 634 | range->min_ip = *(u_int32_t *)NFA_DATA(tb[CTA_NAT_MINIP-1]); |
@@ -668,9 +650,6 @@ ctnetlink_parse_nat(struct nfattr *cda[], | |||
668 | 650 | ||
669 | DEBUGP("leaving\n"); | 651 | DEBUGP("leaving\n"); |
670 | return 0; | 652 | return 0; |
671 | |||
672 | nfattr_failure: | ||
673 | return -1; | ||
674 | } | 653 | } |
675 | #endif | 654 | #endif |
676 | 655 | ||
@@ -681,8 +660,7 @@ ctnetlink_parse_help(struct nfattr *attr, char **helper_name) | |||
681 | 660 | ||
682 | DEBUGP("entered %s\n", __FUNCTION__); | 661 | DEBUGP("entered %s\n", __FUNCTION__); |
683 | 662 | ||
684 | if (nfattr_parse_nested(tb, CTA_HELP_MAX, attr) < 0) | 663 | nfattr_parse_nested(tb, CTA_HELP_MAX, attr); |
685 | goto nfattr_failure; | ||
686 | 664 | ||
687 | if (!tb[CTA_HELP_NAME-1]) | 665 | if (!tb[CTA_HELP_NAME-1]) |
688 | return -EINVAL; | 666 | return -EINVAL; |
@@ -690,9 +668,6 @@ ctnetlink_parse_help(struct nfattr *attr, char **helper_name) | |||
690 | *helper_name = NFA_DATA(tb[CTA_HELP_NAME-1]); | 668 | *helper_name = NFA_DATA(tb[CTA_HELP_NAME-1]); |
691 | 669 | ||
692 | return 0; | 670 | return 0; |
693 | |||
694 | nfattr_failure: | ||
695 | return -1; | ||
696 | } | 671 | } |
697 | 672 | ||
698 | static int | 673 | static int |
@@ -960,8 +935,7 @@ ctnetlink_change_protoinfo(struct ip_conntrack *ct, struct nfattr *cda[]) | |||
960 | u_int16_t npt = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum; | 935 | u_int16_t npt = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum; |
961 | int err = 0; | 936 | int err = 0; |
962 | 937 | ||
963 | if (nfattr_parse_nested(tb, CTA_PROTOINFO_MAX, attr) < 0) | 938 | nfattr_parse_nested(tb, CTA_PROTOINFO_MAX, attr); |
964 | goto nfattr_failure; | ||
965 | 939 | ||
966 | proto = ip_conntrack_proto_find_get(npt); | 940 | proto = ip_conntrack_proto_find_get(npt); |
967 | if (!proto) | 941 | if (!proto) |
@@ -972,9 +946,6 @@ ctnetlink_change_protoinfo(struct ip_conntrack *ct, struct nfattr *cda[]) | |||
972 | ip_conntrack_proto_put(proto); | 946 | ip_conntrack_proto_put(proto); |
973 | 947 | ||
974 | return err; | 948 | return err; |
975 | |||
976 | nfattr_failure: | ||
977 | return -ENOMEM; | ||
978 | } | 949 | } |
979 | 950 | ||
980 | static int | 951 | static int |
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c index d6701cafbcc2..6ea4b22ff28d 100644 --- a/net/ipv4/netfilter/ip_conntrack_proto_tcp.c +++ b/net/ipv4/netfilter/ip_conntrack_proto_tcp.c | |||
@@ -362,8 +362,7 @@ static int nfattr_to_tcp(struct nfattr *cda[], struct ip_conntrack *ct) | |||
362 | struct nfattr *attr = cda[CTA_PROTOINFO_TCP-1]; | 362 | struct nfattr *attr = cda[CTA_PROTOINFO_TCP-1]; |
363 | struct nfattr *tb[CTA_PROTOINFO_TCP_MAX]; | 363 | struct nfattr *tb[CTA_PROTOINFO_TCP_MAX]; |
364 | 364 | ||
365 | if (nfattr_parse_nested(tb, CTA_PROTOINFO_TCP_MAX, attr) < 0) | 365 | nfattr_parse_nested(tb, CTA_PROTOINFO_TCP_MAX, attr); |
366 | goto nfattr_failure; | ||
367 | 366 | ||
368 | if (!tb[CTA_PROTOINFO_TCP_STATE-1]) | 367 | if (!tb[CTA_PROTOINFO_TCP_STATE-1]) |
369 | return -EINVAL; | 368 | return -EINVAL; |
@@ -374,9 +373,6 @@ static int nfattr_to_tcp(struct nfattr *cda[], struct ip_conntrack *ct) | |||
374 | write_unlock_bh(&tcp_lock); | 373 | write_unlock_bh(&tcp_lock); |
375 | 374 | ||
376 | return 0; | 375 | return 0; |
377 | |||
378 | nfattr_failure: | ||
379 | return -1; | ||
380 | } | 376 | } |
381 | #endif | 377 | #endif |
382 | 378 | ||