]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser_json: allow 0 offsets again
authorFlorian Westphal <fw@strlen.de>
Mon, 26 Feb 2024 09:34:59 +0000 (10:34 +0100)
committerFlorian Westphal <fw@strlen.de>
Mon, 26 Feb 2024 12:01:07 +0000 (13:01 +0100)
Its valid in case of tcp option removal:

[ {
   "reset": {
     "tcp option": {
       "base": 123,
       "len": 0,
       "offset": 0
   }

This makes nft-test.py -j pass again.

Fixes: e08627257ecf ("parser: reject raw payload expressions with 0 length")
Signed-off-by: Florian Westphal <fw@strlen.de>
src/parser_json.c

index 970ae8cb26929a438d06573369d920ef3db51449..ff52423af4d7f9d069848b7be3f17baf1a9dec76 100644 (file)
@@ -670,7 +670,7 @@ static struct expr *json_parse_tcp_option_expr(struct json_ctx *ctx,
                if (kind < 0 || kind > 255)
                        return NULL;
 
-               if (len <= 0 || len > (int)NFT_MAX_EXPR_LEN_BITS) {
+               if (len < 0 || len > (int)NFT_MAX_EXPR_LEN_BITS) {
                        json_error(ctx, "option length must be between 0 and %lu, got %d",
                                   NFT_MAX_EXPR_LEN_BITS, len);
                        return NULL;