diff options
author | Phil Sutter <phil@nwl.cc> | 2023-09-20 19:40:11 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-11-03 12:23:37 +0100 |
commit | 02158881cbcd23ad1eec6e1af6b6e18ab3f68a54 (patch) | |
tree | fb709fb24b051c161cd625eaf49262aac08bf60b | |
parent | 293432efa847864e2bece638181fc7107b4abde0 (diff) |
parser_json: Fix synproxy object mss/wscale parsing
commit d73e269f7bffc04b1163ffd16e0bc1689d4127d2 upstream.
The fields are 16 and 8 bits in size, introduce temporary variables to
parse into.
Fixes: f44ab88b1088e ("src: add synproxy stateful object support")
Signed-off-by: Phil Sutter <phil@nwl.cc>
-rw-r--r-- | src/parser_json.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/parser_json.c b/src/parser_json.c index 7bdd9645..aa15a7fc 100644 --- a/src/parser_json.c +++ b/src/parser_json.c @@ -3331,7 +3331,7 @@ static struct cmd *json_parse_cmd_add_object(struct json_ctx *ctx, { const char *family, *tmp, *rate_unit = "packets", *burst_unit = "bytes"; uint32_t l3proto = NFPROTO_UNSPEC; - int inv = 0, flags = 0, i; + int inv = 0, flags = 0, i, j; struct handle h = { 0 }; struct obj *obj; json_t *jflags; @@ -3518,11 +3518,12 @@ static struct cmd *json_parse_cmd_add_object(struct json_ctx *ctx, case CMD_OBJ_SYNPROXY: obj->type = NFT_OBJECT_SYNPROXY; if (json_unpack_err(ctx, root, "{s:i, s:i}", - "mss", &obj->synproxy.mss, - "wscale", &obj->synproxy.wscale)) { + "mss", &i, "wscale", &j)) { obj_free(obj); return NULL; } + obj->synproxy.mss = i; + obj->synproxy.wscale = j; obj->synproxy.flags |= NF_SYNPROXY_OPT_MSS; obj->synproxy.flags |= NF_SYNPROXY_OPT_WSCALE; if (!json_unpack(root, "{s:o}", "flags", &jflags)) { |