From bc7b24bd9c7639e79780dba79dcdccbc2a00f856 Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Thu, 24 Nov 2022 18:22:19 +0800 Subject: [PATCH 1/7] add patch Signed-off-by: tongkunkun --- ...y-the-malformed-space-in-code-format.patch | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 0001-bdev-modify-the-malformed-space-in-code-format.patch diff --git a/0001-bdev-modify-the-malformed-space-in-code-format.patch b/0001-bdev-modify-the-malformed-space-in-code-format.patch new file mode 100644 index 0000000..8277df5 --- /dev/null +++ b/0001-bdev-modify-the-malformed-space-in-code-format.patch @@ -0,0 +1,30 @@ +From d024e1ca9209b6ff8642aa4519789008a4bdfabf Mon Sep 17 00:00:00 2001 +From: tongkunkun +Date: Thu, 24 Nov 2022 17:06:25 +0800 +Subject: [PATCH] bdev: modify the malformed space in code format + +replace the malformed space to tab + +Signed-off-by: tongkunkun +--- + lib/bdev/bdev.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c +index 2a642d6..511b499 100644 +--- a/lib/bdev/bdev.c ++++ b/lib/bdev/bdev.c +@@ -3578,8 +3578,8 @@ spdk_bdev_read(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch, + + int + spdk_bdev_read_blocks(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch, +- void *buf, uint64_t offset_blocks, uint64_t num_blocks, +- spdk_bdev_io_completion_cb cb, void *cb_arg) ++ void *buf, uint64_t offset_blocks, uint64_t num_blocks, ++ spdk_bdev_io_completion_cb cb, void *cb_arg) + { + return bdev_read_blocks_with_md(desc, ch, buf, NULL, offset_blocks, num_blocks, cb, cb_arg); + } +-- +2.37.2.windows.2 + -- Gitee From 271e60d314d0bee1edbc53bde8c9626580854d5f Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Thu, 24 Nov 2022 18:34:28 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tongkunkun --- ...030-bdev-modify-the-malformed-space-in-code-format.patch | 0 spdk.spec | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) rename 0001-bdev-modify-the-malformed-space-in-code-format.patch => 0030-bdev-modify-the-malformed-space-in-code-format.patch (100%) diff --git a/0001-bdev-modify-the-malformed-space-in-code-format.patch b/0030-bdev-modify-the-malformed-space-in-code-format.patch similarity index 100% rename from 0001-bdev-modify-the-malformed-space-in-code-format.patch rename to 0030-bdev-modify-the-malformed-space-in-code-format.patch diff --git a/spdk.spec b/spdk.spec index a90ce79..7b1305f 100644 --- a/spdk.spec +++ b/spdk.spec @@ -4,7 +4,7 @@ Name: spdk Version: 21.01.1 -Release: 7 +Release: 8 Summary: Set of libraries and utilities for high performance user-mode storage License: BSD and MIT URL: http://spdk.io @@ -38,6 +38,7 @@ Patch26: 0026-Fix-race-condition-in-continuous-setup-and-teardown-.patch Patch27: 0027-Change-log-level-in-poll-timeout.patch Patch28: 0028-configure-add-CONFIG_HAVE_ARC4RANDOM.patch Patch29: 0029-Enable-unittest-in-make-check.patch +Patch30: 0030-bdev-modify-the-malformed-space-in-code-format.patch %define package_version %{version}-%{release} @@ -212,6 +213,9 @@ mv doc/output/html/ %{install_docdir} %changelog +* Thu Nov 241 2022 Tongkunkun - 21.01.1-8 +- replace the malformed space to tab + * Tue Nov 1 2022 Weifeng Su - 21.01.1-7 - Enable unittest -- Gitee From 43dfe3a169191879c86e5e91742a10922ea47436 Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Fri, 25 Nov 2022 11:04:20 +0800 Subject: [PATCH 3/7] Add deploy shell script add deploy.sh Signed-off-by: tongkunkun --- deploy.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..99ec7fe --- /dev/null +++ b/deploy.sh @@ -0,0 +1,10 @@ +mkdir -p /data/spdk-tmp +cp spdk-21.01.1 /data/spdk-tmp +cd /data/spdk-tmp +tar -xzvf v21.01.1.tar.gz +cp *.patch spdk-21.01.1/ +cd spdk-21.01.1 +git init +git add . +git commit -s + -- Gitee From f5851b5fb2ea9f0720ebd554c713376def65ba32 Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Fri, 25 Nov 2022 11:06:48 +0800 Subject: [PATCH 4/7] add deploy.sh Signed-off-by: tongkunkun --- 0030-Add-deploy-shell-script.patch | 32 ++++++++++++++++++++++++++++++ spdk.spec | 4 ++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 0030-Add-deploy-shell-script.patch diff --git a/0030-Add-deploy-shell-script.patch b/0030-Add-deploy-shell-script.patch new file mode 100644 index 0000000..5e46db0 --- /dev/null +++ b/0030-Add-deploy-shell-script.patch @@ -0,0 +1,32 @@ +From 43dfe3a169191879c86e5e91742a10922ea47436 Mon Sep 17 00:00:00 2001 +From: tongkunkun +Date: Fri, 25 Nov 2022 11:04:20 +0800 +Subject: [PATCH] Add deploy shell script + +add deploy.sh + +Signed-off-by: tongkunkun +--- + deploy.sh | 10 ++++++++++ + 1 file changed, 10 insertions(+) + create mode 100644 deploy.sh + +diff --git a/deploy.sh b/deploy.sh +new file mode 100644 +index 0000000..99ec7fe +--- /dev/null ++++ b/deploy.sh +@@ -0,0 +1,10 @@ ++mkdir -p /data/spdk-tmp ++cp spdk-21.01.1 /data/spdk-tmp ++cd /data/spdk-tmp ++tar -xzvf v21.01.1.tar.gz ++cp *.patch spdk-21.01.1/ ++cd spdk-21.01.1 ++git init ++git add . ++git commit -s ++ +-- +2.37.2.windows.2 + diff --git a/spdk.spec b/spdk.spec index 7b1305f..35ce57c 100644 --- a/spdk.spec +++ b/spdk.spec @@ -213,8 +213,8 @@ mv doc/output/html/ %{install_docdir} %changelog -* Thu Nov 241 2022 Tongkunkun - 21.01.1-8 -- replace the malformed space to tab +* Thu Nov 24 2022 Tongkunkun - 21.01.1-8 +- Add deploy shell file * Tue Nov 1 2022 Weifeng Su - 21.01.1-7 - Enable unittest -- Gitee From 18e15279249ec105857ee59c2d3c47fc398f467d Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Fri, 25 Nov 2022 15:08:31 +0800 Subject: [PATCH 5/7] Add Makefile add rpm makefile Signed-off-by: tongkunkun --- Makefile | 12 ++++++++++++ spdk.spec | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..806751e --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +# Makefile for source rpm +SPECFILE := spdk.spec +NAME := spdk +VERSION := 21.01.1 + +sources: + echo ${SPECFILE} + tar -zcvf ${NAME}-${VERSION}.tar.gz ${NAME}-$(VERSION) + +source: sources + if test ! -d SOURCES; then mkdir SOURCES; fi + cp *.tar.gz *.patch SOURCES \ No newline at end of file diff --git a/spdk.spec b/spdk.spec index 35ce57c..b0a7f45 100644 --- a/spdk.spec +++ b/spdk.spec @@ -214,7 +214,7 @@ mv doc/output/html/ %{install_docdir} %changelog * Thu Nov 24 2022 Tongkunkun - 21.01.1-8 -- Add deploy shell file +- Add Makefile * Tue Nov 1 2022 Weifeng Su - 21.01.1-7 - Enable unittest -- Gitee From 8b311d72e58ebdd87706da3f602db8e0e10f8fa8 Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Fri, 25 Nov 2022 15:36:30 +0800 Subject: [PATCH 6/7] json: fix wrong param in json_parse_ut.c calling function 'spdk_json_parse' the sizeof(g_vals) should be the num of array, not the num of bytes. see follow: CU_ASSERT(spdk_json_parse(g_buf, sizeof(in) - 1, g_vals, sizeof(g_vals), &g_end, flags | SPDK_JSON_PARSE_FLAG_DECODE_IN_PLACE) == num_vals); Signed-off-by: tongkunkun Reported-by: Jim Harris Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13841 Reviewed-by: GangCao Reviewed-by: Changpeng Liu Reviewed-by: Dong Yi Reviewed-by: Konrad Sztyber Reviewed-by: Ben Walker Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins --- ...aram-in-json_parse_ut.c-calling-func.patch | 56 +++++++++++++++++++ spdk.spec | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 0030-json-fix-wrong-param-in-json_parse_ut.c-calling-func.patch diff --git a/0030-json-fix-wrong-param-in-json_parse_ut.c-calling-func.patch b/0030-json-fix-wrong-param-in-json_parse_ut.c-calling-func.patch new file mode 100644 index 0000000..fdc78b6 --- /dev/null +++ b/0030-json-fix-wrong-param-in-json_parse_ut.c-calling-func.patch @@ -0,0 +1,56 @@ +From c8583472bd7b2821712a5474e082a3e32f33a93b Mon Sep 17 00:00:00 2001 +From: tongkunkun +Date: Wed, 3 Aug 2022 14:09:22 +0800 +Subject: [PATCH] json: fix wrong param in json_parse_ut.c calling function + 'spdk_json_parse' + +the sizeof(g_vals) should be the num of array, not the num of bytes. see follow: + +CU_ASSERT(spdk_json_parse(g_buf, sizeof(in) - 1, g_vals, sizeof(g_vals), &g_end, flags | SPDK_JSON_PARSE_FLAG_DECODE_IN_PLACE) == num_vals); + +Fixes #2623 + +Signed-off-by: tongkunkun +Change-Id: I3b7994606284fe3464650337ecb0f723a627f7aa +Reported-by: Jim Harris +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13841 +Reviewed-by: GangCao +Reviewed-by: Changpeng Liu +Reviewed-by: Dong Yi +Reviewed-by: Konrad Sztyber +Reviewed-by: Ben Walker +Community-CI: Mellanox Build Bot +Tested-by: SPDK CI Jenkins +--- + test/unit/lib/json/json_parse.c/json_parse_ut.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/test/unit/lib/json/json_parse.c/json_parse_ut.c b/test/unit/lib/json/json_parse.c/json_parse_ut.c +index 121acce4f..2ee1110ec 100644 +--- a/test/unit/lib/json/json_parse.c/json_parse_ut.c ++++ b/test/unit/lib/json/json_parse.c/json_parse_ut.c +@@ -9,9 +9,11 @@ + + #include "json/json_parse.c" + ++#define JSONVALUE_NUM 100 ++ + static uint8_t g_buf[1000]; + static void *g_end; +-static struct spdk_json_val g_vals[100]; ++static struct spdk_json_val g_vals[JSONVALUE_NUM]; + static int g_cur_val; + + /* Fill buf with raw data */ +@@ -30,7 +32,7 @@ static int g_cur_val; + BUF_SETUP(in); \ + CU_ASSERT(spdk_json_parse(g_buf, sizeof(in) - 1, NULL, 0, &g_end, flags) == num_vals); \ + memset(g_vals, 0, sizeof(g_vals)); \ +- CU_ASSERT(spdk_json_parse(g_buf, sizeof(in) - 1, g_vals, sizeof(g_vals), &g_end, flags | SPDK_JSON_PARSE_FLAG_DECODE_IN_PLACE) == num_vals); \ ++ CU_ASSERT(spdk_json_parse(g_buf, sizeof(in) - 1, g_vals, JSONVALUE_NUM, &g_end, flags | SPDK_JSON_PARSE_FLAG_DECODE_IN_PLACE) == num_vals); \ + CU_ASSERT(g_end == g_buf + sizeof(in) - sizeof(trailing)); \ + CU_ASSERT(memcmp(g_end, trailing, sizeof(trailing) - 1) == 0); \ + g_cur_val = 0 +-- +2.37.2.windows.2 + diff --git a/spdk.spec b/spdk.spec index b0a7f45..326aa25 100644 --- a/spdk.spec +++ b/spdk.spec @@ -214,7 +214,7 @@ mv doc/output/html/ %{install_docdir} %changelog * Thu Nov 24 2022 Tongkunkun - 21.01.1-8 -- Add Makefile +- json: fix wrong param in json_parse_ut.c calling function 'spdk_json_parse' * Tue Nov 1 2022 Weifeng Su - 21.01.1-7 - Enable unittest -- Gitee From b02bbca6d41162f30a4d87484dc41c62c69f8490 Mon Sep 17 00:00:00 2001 From: tongkunkun Date: Fri, 25 Nov 2022 15:40:48 +0800 Subject: [PATCH 7/7] json: fix parsing json problems when json config is invalid. Add parsing json as invalid cases: 1.json content that not enclosed in {}, it should be parsed as invalid, e.g. "abc":"not encloesed in {}" 2.json content that 'subsystems' not associate with array, it will report error and return failure, e.g. {"subsystems":"123"} 3.handle other invalid json formats, report and return failure, e.g. duplicate keys. Added `spdk_json_find` API return errcode: EPROTOTYPE - json not enclosed in {}. json config with content: 1."not enclosed in {}" 2."'subsystems' not be an array" 3."duplicate key in json" and some other invaild cases will be regarded as invalid json config, and will fail to start app. Signed-off-by: tongkunkun Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13754 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: GangCao Reviewed-by: Aleksey Marchuk Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris --- ...-json-problems-when-json-config-is-i.patch | 192 ++++++++++++++++++ spdk.spec | 2 +- 2 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 0030-json-fix-parsing-json-problems-when-json-config-is-i.patch diff --git a/0030-json-fix-parsing-json-problems-when-json-config-is-i.patch b/0030-json-fix-parsing-json-problems-when-json-config-is-i.patch new file mode 100644 index 0000000..1bbd5f4 --- /dev/null +++ b/0030-json-fix-parsing-json-problems-when-json-config-is-i.patch @@ -0,0 +1,192 @@ +From bb432b4eea2bd19d034dd729fc8caa376f0cab83 Mon Sep 17 00:00:00 2001 +From: tongkunkun +Date: Mon, 29 Aug 2022 18:16:42 +0800 +Subject: [PATCH] json: fix parsing json problems when json config is invalid. + +Add parsing json as invalid cases: +1.json content that not enclosed in {}, it should be parsed as invalid, e.g. + +"abc":"not encloesed in {}" + +2.json content that 'subsystems' not associate with array, it will report error and return failure, e.g. + +{"subsystems":"123"} + +3.handle other invalid json formats, report and return failure, e.g. duplicate keys. + +Added `spdk_json_find` API return errcode: EPROTOTYPE - json not enclosed in {}. + +json config with content: +1."not enclosed in {}" +2."'subsystems' not be an array" +3."duplicate key in json" +and some other invaild cases will be regarded as invalid json config, and will fail to start app. + +Fixes #2599 + +Signed-off-by: tongkunkun +Change-Id: I02574c9acd7671e336d4c589ebbff8ed21eb3681 +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13754 +Community-CI: Mellanox Build Bot +Tested-by: SPDK CI Jenkins +Reviewed-by: GangCao +Reviewed-by: Aleksey Marchuk +Reviewed-by: Tomasz Zawadzki +Reviewed-by: Jim Harris +--- + CHANGELOG.md | 11 +++++++++++ + include/spdk/json.h | 1 + + lib/init/json_config.c | 18 +++++++++++++++--- + lib/json/json_util.c | 12 +++++++++--- + test/bdev/blockdev.sh | 9 +++++++++ + test/bdev/nonarray.json | 1 + + test/bdev/nonenclosed.json | 1 + + 7 files changed, 47 insertions(+), 6 deletions(-) + create mode 100644 test/bdev/nonarray.json + create mode 100644 test/bdev/nonenclosed.json + +diff --git a/CHANGELOG.md b/CHANGELOG.md +index 6386a618c..746c4f23c 100644 +--- a/CHANGELOG.md ++++ b/CHANGELOG.md +@@ -2,6 +2,17 @@ + + ## v22.09: (Upcoming Release) + ++### json ++ ++Added `spdk_json_find` API return errcode: EPROTOTYPE - json not enclosed in {}. ++`spdk_json_find` now returns -EPROTOTYPE instead of -ENOENT if the object parameter ++does not point to a JSON object (i.e. is not enclosed with {}). ++ ++### init ++ ++`spdk_subsystem_init_from_json_config` now fails if the JSON configuration file is not ++an object with an array named "subsystems". ++ + ### bdev + + New RPCs `bdev_xnvme_create` and `bdev_xnvme_delete` were added to support the xNVMe bdev. +diff --git a/include/spdk/json.h b/include/spdk/json.h +index b20820153..a3b8d9985 100644 +--- a/include/spdk/json.h ++++ b/include/spdk/json.h +@@ -266,6 +266,7 @@ int spdk_json_write_named_object_begin(struct spdk_json_write_ctx *w, const char + * -EINVAL - json object is invalid + * -ENOENT - key not found + * -EDOM - key exists but value type mismatch. ++ * -EPROTOTYPE - json not enclosed in {}. + */ + int spdk_json_find(struct spdk_json_val *object, const char *key_name, struct spdk_json_val **key, + struct spdk_json_val **val, enum spdk_json_val_type type); +diff --git a/lib/init/json_config.c b/lib/init/json_config.c +index 0db8e06d8..f1fcaa5f1 100644 +--- a/lib/init/json_config.c ++++ b/lib/init/json_config.c +@@ -566,14 +566,26 @@ spdk_subsystem_init_from_json_config(const char *json_config_file, const char *r + + /* Capture subsystems array */ + rc = spdk_json_find_array(ctx->values, "subsystems", NULL, &ctx->subsystems); +- if (rc) { +- SPDK_WARNLOG("No 'subsystems' key JSON configuration file.\n"); +- } else { ++ switch (rc) { ++ case 0: + /* Get first subsystem */ + ctx->subsystems_it = spdk_json_array_first(ctx->subsystems); + if (ctx->subsystems_it == NULL) { + SPDK_NOTICELOG("'subsystems' configuration is empty\n"); + } ++ break; ++ case -EPROTOTYPE: ++ SPDK_ERRLOG("Invalid JSON configuration: not enclosed in {}.\n"); ++ goto fail; ++ case -ENOENT: ++ SPDK_WARNLOG("No 'subsystems' key JSON configuration file.\n"); ++ break; ++ case -EDOM: ++ SPDK_ERRLOG("Invalid JSON configuration: 'subsystems' should be an array.\n"); ++ goto fail; ++ default: ++ SPDK_ERRLOG("Failed to parse JSON configuration.\n"); ++ goto fail; + } + + /* If rpc_addr is not an Unix socket use default address as prefix. */ +diff --git a/lib/json/json_util.c b/lib/json/json_util.c +index a81feb9b9..2ca5fe14a 100644 +--- a/lib/json/json_util.c ++++ b/lib/json/json_util.c +@@ -530,11 +530,17 @@ spdk_json_find(struct spdk_json_val *object, const char *key_name, struct spdk_j + { + struct spdk_json_val *_key = NULL; + struct spdk_json_val *_val = NULL; +- struct spdk_json_val *it; ++ struct spdk_json_val *it_first, *it; + + assert(object != NULL); + +- for (it = json_first(object, SPDK_JSON_VAL_ARRAY_BEGIN | SPDK_JSON_VAL_OBJECT_BEGIN); ++ it_first = json_first(object, SPDK_JSON_VAL_OBJECT_BEGIN); ++ if (!it_first) { ++ SPDK_JSON_DEBUG("Not enclosed in {}\n"); ++ return -EPROTOTYPE; ++ } ++ ++ for (it = it_first; + it != NULL; + it = spdk_json_next(it)) { + if (it->type != SPDK_JSON_VAL_NAME) { +@@ -553,7 +559,7 @@ spdk_json_find(struct spdk_json_val *object, const char *key_name, struct spdk_j + _key = it; + _val = json_value(_key); + +- if (type != SPDK_JSON_VAL_INVALID && (_val->type & type) == 0) { ++ if (type != SPDK_JSON_VAL_ANY && (_val->type & type) == 0) { + SPDK_JSON_DEBUG("key '%s' type is %#x but expected one of %#x\n", key_name, _val->type, type); + return -EDOM; + } +diff --git a/test/bdev/blockdev.sh b/test/bdev/blockdev.sh +index 42a5b771c..6a310172a 100755 +--- a/test/bdev/blockdev.sh ++++ b/test/bdev/blockdev.sh +@@ -7,6 +7,9 @@ source $testdir/nbd_common.sh + + rpc_py=rpc_cmd + conf_file="$testdir/bdev.json" ++nonenclosed_conf_file="$testdir/nonenclosed.json" ++nonarray_conf_file="$testdir/nonarray.json" ++ + # Make sure the configuration is clean + : > "$conf_file" + +@@ -566,6 +569,12 @@ trap "cleanup" SIGINT SIGTERM EXIT + run_test "bdev_verify" $testdir/bdevperf/bdevperf --json "$conf_file" -q 128 -o 4096 -w verify -t 5 -C -m 0x3 "$env_ctx" + run_test "bdev_write_zeroes" $testdir/bdevperf/bdevperf --json "$conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" + ++# test json config not enclosed with {} ++run_test "bdev_json_nonenclosed" $testdir/bdevperf/bdevperf --json "$nonenclosed_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true ++ ++# test json config "subsystems" not with array ++run_test "bdev_json_nonarray" $testdir/bdevperf/bdevperf --json "$nonarray_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true ++ + if [[ $test_type == bdev ]]; then + run_test "bdev_qos" qos_test_suite "$env_ctx" + run_test "bdev_qd_sampling" qd_sampling_test_suite "$env_ctx" +diff --git a/test/bdev/nonarray.json b/test/bdev/nonarray.json +new file mode 100644 +index 000000000..5a3899731 +--- /dev/null ++++ b/test/bdev/nonarray.json +@@ -0,0 +1 @@ ++{"subsystems": "test non array"} +diff --git a/test/bdev/nonenclosed.json b/test/bdev/nonenclosed.json +new file mode 100644 +index 000000000..e9397a1c5 +--- /dev/null ++++ b/test/bdev/nonenclosed.json +@@ -0,0 +1 @@ ++"subsystems" : "test nonenclosed json" +-- +2.37.2.windows.2 + diff --git a/spdk.spec b/spdk.spec index 326aa25..795cc24 100644 --- a/spdk.spec +++ b/spdk.spec @@ -214,7 +214,7 @@ mv doc/output/html/ %{install_docdir} %changelog * Thu Nov 24 2022 Tongkunkun - 21.01.1-8 -- json: fix wrong param in json_parse_ut.c calling function 'spdk_json_parse' +- json: fix parsing json problems when json config is invalid. * Tue Nov 1 2022 Weifeng Su - 21.01.1-7 - Enable unittest -- Gitee