aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/xt_state.c
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2010-03-19 17:32:59 +0100
committerJan Engelhardt <jengelh@medozas.de>2010-03-25 16:56:09 +0100
commit4a5a5c73b7cfee46a0b1411903cfa0dea532deec (patch)
tree3f7ef0def4adf3a01e15ab3a2a7231967b87bfee /net/netfilter/xt_state.c
parentnetfilter: xtables: change targets to return error code (diff)
downloadlinux-dev-4a5a5c73b7cfee46a0b1411903cfa0dea532deec.tar.xz
linux-dev-4a5a5c73b7cfee46a0b1411903cfa0dea532deec.zip
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_state.c')
-rw-r--r--net/netfilter/xt_state.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/netfilter/xt_state.c b/net/netfilter/xt_state.c
index 8e8c9df51784..2b75230d15ca 100644
--- a/net/netfilter/xt_state.c
+++ b/net/netfilter/xt_state.c
@@ -39,10 +39,13 @@ state_mt(const struct sk_buff *skb, const struct xt_match_param *par)
static int state_mt_check(const struct xt_mtchk_param *par)
{
- if (nf_ct_l3proto_try_module_get(par->family) < 0) {
+ int ret;
+
+ ret = nf_ct_l3proto_try_module_get(par->family);
+ if (ret < 0) {
pr_info("cannot load conntrack support for proto=%u\n",
par->family);
- return -EINVAL;
+ return ret;
}
return 0;
}