From d3604289be99d15258d026c5ea24b50eff18a00e Mon Sep 17 00:00:00 2001 From: Jim Kalafut Date: Tue, 12 Jun 2018 06:07:15 -0700 Subject: [PATCH] Update aws-sdk-go/service/dynamodb/dynamodbattribute (#4744) Fixes #4721, Fixes #4742 --- .../service/dynamodb/dynamodbattribute/decode.go | 11 +++++++++++ .../service/dynamodb/dynamodbattribute/doc.go | 8 +++++++- vendor/vendor.json | 6 +++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode.go index e02497568e94..41b67b3ae020 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/decode.go @@ -1,6 +1,7 @@ package dynamodbattribute import ( + "encoding/base64" "fmt" "reflect" "strconv" @@ -538,6 +539,16 @@ func (d *Decoder) decodeString(s *string, v reflect.Value, fieldTag tag) error { switch v.Kind() { case reflect.String: v.SetString(*s) + case reflect.Slice: + // To maintain backwards compatibility with the ConvertFrom family of methods + // which converted []byte into base64-encoded strings if the input was typed + if v.Type() == byteSliceType { + decoded, err := base64.StdEncoding.DecodeString(*s) + if err != nil { + return &UnmarshalError{Err: err, Value: "string", Type: v.Type()} + } + v.SetBytes(decoded) + } case reflect.Interface: // Ensure type aliasing is handled properly v.Set(reflect.ValueOf(*s).Convert(v.Type())) diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/doc.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/doc.go index 7a51ac07616d..b83a29c951fd 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute/doc.go @@ -81,7 +81,7 @@ // The ConvertTo, ConvertToList, ConvertToMap, ConvertFrom, ConvertFromMap // and ConvertFromList methods have been deprecated. The Marshal and Unmarshal // functions should be used instead. The ConvertTo|From marshallers do not -// support BinarySet, NumberSet, nor StringSets, and will incorrect marshal +// support BinarySet, NumberSet, nor StringSets, and will incorrectly marshal // binary data fields in structs as base64 strings. // // The Marshal and Unmarshal functions correct this behavior, and removes @@ -91,5 +91,11 @@ // replaced with have been replaced with dynamodbattribute.Marshaler and // dynamodbattribute.Unmarshaler interfaces. // +// The Unmarshal functions are backwards compatible with data marshalled by +// ConvertTo*, but the reverse is not true: objects marshalled using Marshal +// are not necessarily usable by ConvertFrom*. This backward compatibility is +// intended to assist with incremental upgrading of data following a switch +// away from the Convert* family of functions. +// // `time.Time` is marshaled as RFC3339 format. package dynamodbattribute diff --git a/vendor/vendor.json b/vendor/vendor.json index 0c8051b6f1d3..69d536a58754 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -445,10 +445,10 @@ "revisionTime": "2018-02-09T23:01:02Z" }, { - "checksumSHA1": "/I6I2nR59isqKtSpEnTfLRWZ8Mc=", + "checksumSHA1": "dweeMPBmsx8OdMN7S8Ad/+dqge8=", "path": "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute", - "revision": "fb9d53b0db7e801eb0d4fa021f5860794d845da3", - "revisionTime": "2018-02-09T23:01:02Z" + "revision": "44b48b90a2c30b9c22c31940bb3e8d85a00f79fe", + "revisionTime": "2018-06-12T01:50:13Z" }, { "checksumSHA1": "6m97gyHt25GPBhd48PdPaAXCT9Y=",