Merge pull request #4906 from hashicorp/jsonunmarshal

use json unmarshal instead of json decoder
This commit is contained in:
Matthew Hooker 2017-05-19 12:04:19 -07:00 committed by GitHub
commit b75367204f
1 changed files with 4 additions and 2 deletions

View File

@ -264,13 +264,15 @@ func (r *rawTemplate) parsePostProcessor(
func Parse(r io.Reader) (*Template, error) { func Parse(r io.Reader) (*Template, error) {
// Create a buffer to copy what we read // Create a buffer to copy what we read
var buf bytes.Buffer var buf bytes.Buffer
r = io.TeeReader(r, &buf) if _, err := buf.ReadFrom(r); err != nil {
return nil, err
}
// First, decode the object into an interface{}. We do this instead of // First, decode the object into an interface{}. We do this instead of
// the rawTemplate directly because we'd rather use mapstructure to // the rawTemplate directly because we'd rather use mapstructure to
// decode since it has richer errors. // decode since it has richer errors.
var raw interface{} var raw interface{}
if err := json.NewDecoder(r).Decode(&raw); err != nil { if err := json.Unmarshal(buf.Bytes(), &raw); err != nil {
return nil, err return nil, err
} }