From 783dca4bbf315d3a5bf123441db1b59d8a4fc975 Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Wed, 16 Mar 2022 09:46:56 -0400 Subject: [PATCH 1/6] go-secure-stdlib/parseutil to v0.1.4 --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9b7549a7580e6..85011070cb5a7 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/hashicorp/go-secure-stdlib/gatedwriter v0.1.1 github.com/hashicorp/go-secure-stdlib/kv-builder v0.1.1 github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3 + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 github.com/hashicorp/go-secure-stdlib/password v0.1.1 github.com/hashicorp/go-secure-stdlib/reloadutil v0.1.1 github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 diff --git a/go.sum b/go.sum index f02a646f80a92..96093cdf4d4dd 100644 --- a/go.sum +++ b/go.sum @@ -884,6 +884,8 @@ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3 github.com/hashicorp/go-secure-stdlib/parseutil v0.1.2/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3 h1:geBw3SBrxQq+buvbf4K+Qltv1gjaXJxy8asD4CjGYow= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 h1:hrIH/qrOTHfG9a1Jz6Z2jQf7Xe77AaD464W1fCFLwPQ= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/password v0.1.1 h1:6JzmBqXprakgFEHwBgdchsjaA9x3GyjdI568bXKxa60= github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= github.com/hashicorp/go-secure-stdlib/reloadutil v0.1.1 h1:SMGUnbpAcat8rIKHkBPjfv81yC46a8eCNZ2hsR2l1EI= From 4431f866eb1b09c5bfe3806a963618a54e82c994 Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Wed, 16 Mar 2022 09:47:31 -0400 Subject: [PATCH 2/6] add TypeCommaStringSlice for json.Number --- sdk/framework/field_data_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sdk/framework/field_data_test.go b/sdk/framework/field_data_test.go index 7e3c9d1676171..6f7f23152218c 100644 --- a/sdk/framework/field_data_test.go +++ b/sdk/framework/field_data_test.go @@ -1,6 +1,7 @@ package framework import ( + "encoding/json" "net/http" "reflect" "testing" @@ -1084,6 +1085,16 @@ func TestFieldDataGet_Error(t *testing.T) { }, "foo", }, + + "comma string slice type, single JSON number value": { + map[string]*FieldSchema{ + "foo": {Type: TypeCommaStringSlice}, + }, + map[string]interface{}{ + "foo": json.Number("123"), + }, + "foo", + }, } for name, tc := range cases { From cec77a20dc8deb514f635064b73a4299085eafec Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Wed, 16 Mar 2022 10:00:58 -0400 Subject: [PATCH 3/6] add changelog entry --- changelog/14522.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changelog/14522.txt diff --git a/changelog/14522.txt b/changelog/14522.txt new file mode 100644 index 0000000000000..420a9838cf9ff --- /dev/null +++ b/changelog/14522.txt @@ -0,0 +1,3 @@ +```release-note:bug +core: Fix panic caused by parsing JSON integers for fields defined as comma-delimited strings +``` From 6c17d3c9f08a5ffe05342ef499f8037fa3ee4d68 Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Wed, 16 Mar 2022 10:32:05 -0400 Subject: [PATCH 4/6] upgrade go-secure-stdlib/parseutil to v0.1.4 in sdk --- sdk/go.mod | 2 +- sdk/go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sdk/go.mod b/sdk/go.mod index 0aa17297c95c0..40194825a81e8 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -20,7 +20,7 @@ require ( github.com/hashicorp/go-plugin v1.4.3 github.com/hashicorp/go-secure-stdlib/base62 v0.1.1 github.com/hashicorp/go-secure-stdlib/mlock v0.1.1 - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1 + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 github.com/hashicorp/go-secure-stdlib/password v0.1.1 github.com/hashicorp/go-secure-stdlib/strutil v0.1.1 github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1 diff --git a/sdk/go.sum b/sdk/go.sum index 396026093e988..957410de74d32 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -109,6 +109,8 @@ github.com/hashicorp/go-secure-stdlib/mlock v0.1.1 h1:cCRo8gK7oq6A2L6LICkUZ+/a5r github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1 h1:78ki3QBevHwYrVxnyVeaEz+7WtifHhauYF23es/0KlI= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 h1:hrIH/qrOTHfG9a1Jz6Z2jQf7Xe77AaD464W1fCFLwPQ= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/password v0.1.1 h1:6JzmBqXprakgFEHwBgdchsjaA9x3GyjdI568bXKxa60= github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= github.com/hashicorp/go-secure-stdlib/strutil v0.1.1 h1:nd0HIW15E6FG1MsnArYaHfuw9C2zgzM8LxkG5Ty/788= From fb379334ad7ed432d6b0e4151853cd9c1e1a5b84 Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Wed, 16 Mar 2022 10:32:27 -0400 Subject: [PATCH 5/6] move json number TypeCommaStringSlice test --- sdk/framework/field_data_test.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sdk/framework/field_data_test.go b/sdk/framework/field_data_test.go index 6f7f23152218c..60ffa08232f23 100644 --- a/sdk/framework/field_data_test.go +++ b/sdk/framework/field_data_test.go @@ -856,6 +856,18 @@ func TestFieldDataGet(t *testing.T) { false, }, + "comma string slice type, single JSON number value": { + map[string]*FieldSchema{ + "foo": {Type: TypeCommaStringSlice}, + }, + map[string]interface{}{ + "foo": json.Number("123"), + }, + "foo", + []string{"123"}, + false, + }, + "type kv pair, not supplied": { map[string]*FieldSchema{ "foo": {Type: TypeKVPairs}, @@ -1085,16 +1097,6 @@ func TestFieldDataGet_Error(t *testing.T) { }, "foo", }, - - "comma string slice type, single JSON number value": { - map[string]*FieldSchema{ - "foo": {Type: TypeCommaStringSlice}, - }, - map[string]interface{}{ - "foo": json.Number("123"), - }, - "foo", - }, } for name, tc := range cases { From b8170741ee9cc06e4d486e2d14e9cb2ea65fd238 Mon Sep 17 00:00:00 2001 From: Chris Capurso <1036769+ccapurso@users.noreply.github.com> Date: Thu, 24 Mar 2022 16:19:19 -0400 Subject: [PATCH 6/6] go mod download for api; go mod tidy --- api/go.mod | 2 +- api/go.sum | 3 ++- go.sum | 2 -- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/api/go.mod b/api/go.mod index 605ae6bdd439c..b9c23b8d3783d 100644 --- a/api/go.mod +++ b/api/go.mod @@ -14,7 +14,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-retryablehttp v0.6.6 github.com/hashicorp/go-rootcerts v1.0.2 - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1 + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 github.com/hashicorp/hcl v1.0.0 github.com/hashicorp/vault/sdk v0.4.1 github.com/mitchellh/mapstructure v1.4.2 diff --git a/api/go.sum b/api/go.sum index 40e971e311ef1..9d54aa4c7fb21 100644 --- a/api/go.sum +++ b/api/go.sum @@ -113,8 +113,9 @@ github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR3 github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1 h1:cCRo8gK7oq6A2L6LICkUZ+/a5rLiRXFMf1Qd4xSwxTc= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1 h1:78ki3QBevHwYrVxnyVeaEz+7WtifHhauYF23es/0KlI= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 h1:hrIH/qrOTHfG9a1Jz6Z2jQf7Xe77AaD464W1fCFLwPQ= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= github.com/hashicorp/go-secure-stdlib/strutil v0.1.1 h1:nd0HIW15E6FG1MsnArYaHfuw9C2zgzM8LxkG5Ty/788= github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= diff --git a/go.sum b/go.sum index 96093cdf4d4dd..3242ce0129242 100644 --- a/go.sum +++ b/go.sum @@ -882,8 +882,6 @@ github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 h1:p4AKXPPS24tO8Wc8i1gLvSKdmk github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.2/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3 h1:geBw3SBrxQq+buvbf4K+Qltv1gjaXJxy8asD4CjGYow= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4 h1:hrIH/qrOTHfG9a1Jz6Z2jQf7Xe77AaD464W1fCFLwPQ= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.4/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/password v0.1.1 h1:6JzmBqXprakgFEHwBgdchsjaA9x3GyjdI568bXKxa60=