From f1427774b505e49c381fe51bde58a1cb431a1f70 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 25 Jul 2013 22:08:15 +0200 Subject: expr: don't override errno value if nft_mxml_num_parse is used That function already sets errno for us. Signed-off-by: Pablo Neira Ayuso --- src/expr/byteorder.c | 13 ++++++------- src/expr/ct.c | 2 +- src/expr/limit.c | 7 ++----- 3 files changed, 9 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c index 523bae1..79ba439 100644 --- a/src/expr/byteorder.c +++ b/src/expr/byteorder.c @@ -211,27 +211,26 @@ nft_rule_expr_byteorder_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree) byteorder->op = NFT_BYTEORDER_NTOH; else if (strcmp(op, "hton") == 0) byteorder->op = NFT_BYTEORDER_HTON; - else - goto err; + else { + errno = EINVAL; + return -1; + } e->flags |= (1 << NFT_EXPR_BYTEORDER_OP); if (nft_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, &byteorder->len, NFT_TYPE_U8) != 0) - goto err; + return -1; e->flags |= (1 << NFT_EXPR_BYTEORDER_LEN); if (nft_mxml_num_parse(tree, "size", MXML_DESCEND_FIRST, BASE_DEC, &byteorder->size, NFT_TYPE_U8) != 0) - goto err; + return -1; e->flags |= (1 << NFT_EXPR_BYTEORDER_SIZE); return 0; -err: - errno = EINVAL; - return -1; #else errno = EOPNOTSUPP; return -1; diff --git a/src/expr/ct.c b/src/expr/ct.c index 866c743..99448c6 100644 --- a/src/expr/ct.c +++ b/src/expr/ct.c @@ -207,7 +207,7 @@ static int nft_rule_expr_ct_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree if (nft_mxml_num_parse(tree, "dir", MXML_DESCEND_FIRST, BASE_DEC, &dir, NFT_TYPE_U8) != 0) - goto err; + return -1; if (dir != IP_CT_DIR_ORIGINAL && dir != IP_CT_DIR_REPLY) goto err; diff --git a/src/expr/limit.c b/src/expr/limit.c index 27f880c..9f20c38 100644 --- a/src/expr/limit.c +++ b/src/expr/limit.c @@ -125,20 +125,17 @@ static int nft_rule_expr_limit_xml_parse(struct nft_rule_expr *e, mxml_node_t *t if (nft_mxml_num_parse(tree, "rate", MXML_DESCEND_FIRST, BASE_DEC, &limit->rate, NFT_TYPE_U64) != 0) - goto err; + return -1; e->flags |= (1 << NFT_EXPR_LIMIT_RATE); if (nft_mxml_num_parse(tree, "depth", MXML_DESCEND_FIRST, BASE_DEC, &limit->rate, NFT_TYPE_U64) != 0) - goto err; + return -1; e->flags |= (1 << NFT_EXPR_LIMIT_DEPTH); return 0; -err: - errno = EINVAL; - return -1; #else errno = EOPNOTSUPP; return -1; -- cgit v1.2.3