From 3094358ec2379b3600450b2a215d6ffdc9196ab8 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 20 Apr 2024 02:04:09 +0300 Subject: [PATCH] Fix autovivification leading to extra empty keys in pool-create --- src/cli_pool_create.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/cli_pool_create.cpp b/src/cli_pool_create.cpp index 33df7870..53534f36 100644 --- a/src/cli_pool_create.cpp +++ b/src/cli_pool_create.cpp @@ -14,7 +14,7 @@ struct pool_creator_t { cli_tool_t *parent; - json11::Json::object cfg; + json11::Json cfg; bool force = false; bool wait = false; @@ -55,8 +55,12 @@ struct pool_creator_t goto resume_8; // Validate pool parameters - result.text = validate_pool_config(cfg, json11::Json(), parent->cli->st_cli.global_block_size, - parent->cli->st_cli.global_bitmap_granularity, force); + { + auto new_cfg = cfg.object_items(); + result.text = validate_pool_config(new_cfg, json11::Json(), parent->cli->st_cli.global_block_size, + parent->cli->st_cli.global_bitmap_granularity, force); + cfg = new_cfg; + } if (result.text != "") { result.err = EINVAL; @@ -605,7 +609,7 @@ std::function cli_tool_t::start_pool_create(json11::Json c { auto pool_creator = new pool_creator_t(); pool_creator->parent = this; - pool_creator->cfg = cfg.object_items(); + pool_creator->cfg = cfg; pool_creator->force = cfg["force"].bool_value(); pool_creator->wait = cfg["wait"].bool_value(); return [pool_creator](cli_result_t & result)