diff options
author | Jan Engelhardt <jengelh@medozas.de> | 2010-03-19 12:32:59 -0400 |
---|---|---|
committer | Jan Engelhardt <jengelh@medozas.de> | 2010-03-25 11:56:09 -0400 |
commit | 4a5a5c73b7cfee46a0b1411903cfa0dea532deec (patch) | |
tree | 3f7ef0def4adf3a01e15ab3a2a7231967b87bfee /net/netfilter/xt_connmark.c | |
parent | d6b00a5345ce4e86e8b00a88bb84a2c0c1f69ddc (diff) |
netfilter: xtables: slightly better error reporting
When extended status codes are available, such as ENOMEM on failed
allocations, or subsequent functions (e.g. nf_ct_get_l3proto), passing
them up to userspace seems like a good idea compared to just always
EINVAL.
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Diffstat (limited to 'net/netfilter/xt_connmark.c')
-rw-r--r-- | net/netfilter/xt_connmark.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c index e137af5559e..71e38a1fd65 100644 --- a/net/netfilter/xt_connmark.c +++ b/net/netfilter/xt_connmark.c | |||
@@ -76,10 +76,13 @@ connmark_tg(struct sk_buff *skb, const struct xt_target_param *par) | |||
76 | 76 | ||
77 | static int connmark_tg_check(const struct xt_tgchk_param *par) | 77 | static int connmark_tg_check(const struct xt_tgchk_param *par) |
78 | { | 78 | { |
79 | if (nf_ct_l3proto_try_module_get(par->family) < 0) { | 79 | int ret; |
80 | |||
81 | ret = nf_ct_l3proto_try_module_get(par->family); | ||
82 | if (ret < 0) { | ||
80 | pr_info("cannot load conntrack support for proto=%u\n", | 83 | pr_info("cannot load conntrack support for proto=%u\n", |
81 | par->family); | 84 | par->family); |
82 | return -EINVAL; | 85 | return ret; |
83 | } | 86 | } |
84 | return 0; | 87 | return 0; |
85 | } | 88 | } |
@@ -105,10 +108,13 @@ connmark_mt(const struct sk_buff *skb, const struct xt_match_param *par) | |||
105 | 108 | ||
106 | static int connmark_mt_check(const struct xt_mtchk_param *par) | 109 | static int connmark_mt_check(const struct xt_mtchk_param *par) |
107 | { | 110 | { |
108 | if (nf_ct_l3proto_try_module_get(par->family) < 0) { | 111 | int ret; |
112 | |||
113 | ret = nf_ct_l3proto_try_module_get(par->family); | ||
114 | if (ret < 0) { | ||
109 | pr_info("cannot load conntrack support for proto=%u\n", | 115 | pr_info("cannot load conntrack support for proto=%u\n", |
110 | par->family); | 116 | par->family); |
111 | return -EINVAL; | 117 | return ret; |
112 | } | 118 | } |
113 | return 0; | 119 | return 0; |
114 | } | 120 | } |