summaryrefslogtreecommitdiffstats
path: root/src/expr.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-18 20:01:27 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-18 20:08:25 +0200
commit6cdc49ffbe0a672c27f4fffe831563b12a8e2e61 (patch)
tree76e1b5318bfdd9627f8ab5138293cbe569c25da4 /src/expr.c
parent5ecac519cd78043d0a5bfead1922a683d32db9d2 (diff)
src: simplify getter logic
This patch refactors the getter code to simplify it. The default cases have been removed so gcc will spot a warning if an attribute is not handled appropriately. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c
index 711c18e..d2d345c 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -114,6 +114,9 @@ const void *nft_rule_expr_get(const struct nft_rule_expr *expr, uint16_t type, s
ret = expr->ops->name;
break;
default:
+ if (!(expr->flags & (1 << type)))
+ return NULL;
+
ret = expr->ops->get(expr, type, data_len);
break;
}