aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/xt_connmark.c
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2010-03-19 12:32:59 -0400
committerJan Engelhardt <jengelh@medozas.de>2010-03-25 11:56:09 -0400
commit4a5a5c73b7cfee46a0b1411903cfa0dea532deec (patch)
tree3f7ef0def4adf3a01e15ab3a2a7231967b87bfee /net/netfilter/xt_connmark.c
parentd6b00a5345ce4e86e8b00a88bb84a2c0c1f69ddc (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.c14
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
77static int connmark_tg_check(const struct xt_tgchk_param *par) 77static 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
106static int connmark_mt_check(const struct xt_mtchk_param *par) 109static 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}