]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
ruleset: fix more leaks in error path
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 13 Feb 2015 15:48:35 +0000 (16:48 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 13 Feb 2015 15:52:56 +0000 (16:52 +0100)
Shouldn't happen though, since you need to introduce an unsupported
markup language.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/ruleset.c

index f5b6d55adfa8b25a37048e064ef2faac4ab4026d..89ea3440123ff1cb52e28f4fdf1ea587c3ef2798 100644 (file)
@@ -255,7 +255,8 @@ static int nft_ruleset_parse_tables(struct nft_parse_ctx *ctx,
 #endif
                break;
        default:
-               return -1;
+               errno = EOPNOTSUPP;
+               goto err;
        }
 
        nft_ruleset_ctx_set_u32(ctx, NFT_RULESET_CTX_TYPE, NFT_RULESET_TABLE);
@@ -292,7 +293,8 @@ static int nft_ruleset_parse_chains(struct nft_parse_ctx *ctx,
 #endif
                break;
        default:
-               return -1;
+               errno = EOPNOTSUPP;
+               goto err;
        }
 
        nft_ruleset_ctx_set_u32(ctx, NFT_RULESET_CTX_TYPE, NFT_RULESET_CHAIN);
@@ -346,7 +348,8 @@ static int nft_ruleset_parse_set_elems(struct nft_parse_ctx *ctx,
 #endif
                break;
        default:
-               return -1;
+               errno = EOPNOTSUPP;
+               goto err;
        }
 
        if (nft_ruleset_parse_set(ctx, set, NFT_RULESET_SET_ELEMS, err) < 0)
@@ -381,7 +384,8 @@ static int nft_ruleset_parse_sets(struct nft_parse_ctx *ctx,
 #endif
                break;
        default:
-               return -1;
+               errno = EOPNOTSUPP;
+               goto err;
        }
 
        if (nft_ruleset_parse_set(ctx, set, NFT_RULESET_SET, err) < 0)
@@ -417,7 +421,8 @@ static int nft_ruleset_parse_rules(struct nft_parse_ctx *ctx,
 #endif
                break;
        default:
-               return -1;
+               errno = EOPNOTSUPP;
+               goto err;
        }
 
        nft_ruleset_ctx_set_u32(ctx, NFT_RULESET_CTX_TYPE, NFT_RULESET_RULE);