46 lines
1.5 KiB
Diff
46 lines
1.5 KiB
Diff
From d73e269f7bffc04b1163ffd16e0bc1689d4127d2 Mon Sep 17 00:00:00 2001
|
|
From: Phil Sutter <phil@nwl.cc>
|
|
Date: Wed, 20 Sep 2023 19:40:11 +0200
|
|
Subject: [PATCH] parser_json: Fix synproxy object mss/wscale parsing
|
|
|
|
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>
|
|
---
|
|
src/parser_json.c | 7 ++++---
|
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/parser_json.c b/src/parser_json.c
|
|
index ddd9c496..6d8e5c62 100644
|
|
--- a/src/parser_json.c
|
|
+++ b/src/parser_json.c
|
|
@@ -3447,7 +3447,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;
|
|
@@ -3634,11 +3634,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)) {
|
|
--
|
|
2.33.0
|
|
|