summaryrefslogtreecommitdiffstats
path: root/src/set.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2016-06-10 15:07:13 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2016-06-15 13:26:32 +0200
commit46b887ca6b0382d135599a83ed0884aeaf97a357 (patch)
tree7e252be40ff5ba4b7978bc19228714cfef33df4d /src/set.c
parent5b8ae79fae3bc8be9663bd752c7ec466a95ac180 (diff)
src: simplify unsetters
If the attribute is set as we already check at the beginning of this function, then we can release the object. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/set.c')
-rw-r--r--src/set.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/set.c b/src/set.c
index c23c378..46a0007 100644
--- a/src/set.c
+++ b/src/set.c
@@ -65,20 +65,15 @@ EXPORT_SYMBOL_ALIAS(nftnl_set_is_set, nft_set_attr_is_set);
void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
{
+ if (!(s->flags & (1 << attr)))
+ return;
+
switch (attr) {
case NFTNL_SET_TABLE:
- if (s->flags & (1 << NFTNL_SET_TABLE))
- if (s->table) {
- xfree(s->table);
- s->table = NULL;
- }
+ xfree(s->table);
break;
case NFTNL_SET_NAME:
- if (s->flags & (1 << NFTNL_SET_NAME))
- if (s->name) {
- xfree(s->name);
- s->name = NULL;
- }
+ xfree(s->name);
break;
case NFTNL_SET_FLAGS:
case NFTNL_SET_KEY_TYPE: