diff options
| author | Erik Dubbelboer <erik@dubbelboer.com> | 2015-07-15 16:12:05 +0200 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2015-11-25 16:18:36 +0000 |
| commit | c4be790c0e20bfa4def3103392f404de201b3487 (patch) | |
| tree | 6fa960e0776631ddb57ffad75579f503478def35 /src/encoding/json/encode_test.go | |
| parent | 64cc5fd0b3ad20c6e7e8b875317629df8207d9ba (diff) | |
| download | go-c4be790c0e20bfa4def3103392f404de201b3487.tar.xz | |
encoding/json: check if Number is valid
json.Number is a special case which didn't have any checks and could result in invalid JSON.
Fixes #10281
Change-Id: Ie3e726e4d6bf6a6aba535d36f6107013ceac913a
Reviewed-on: https://go-review.googlesource.com/12250
Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/encoding/json/encode_test.go')
| -rw-r--r-- | src/encoding/json/encode_test.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/encoding/json/encode_test.go b/src/encoding/json/encode_test.go index 2206b2ee2e..c00491e00c 100644 --- a/src/encoding/json/encode_test.go +++ b/src/encoding/json/encode_test.go @@ -437,6 +437,18 @@ func TestIssue6458(t *testing.T) { } } +func TestIssue10281(t *testing.T) { + type Foo struct { + N Number + } + x := Foo{Number(`invalid`)} + + b, err := Marshal(&x) + if err == nil { + t.Errorf("Marshal(&x) = %#q; want error", b) + } +} + func TestHTMLEscape(t *testing.T) { var b, want bytes.Buffer m := `{"M":"<html>foo &` + "\xe2\x80\xa8 \xe2\x80\xa9" + `</html>"}` |
