Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
01f6f2d7
Commit
01f6f2d7
authored
Jan 13, 2017
by
Felix Lange
Committed by
GitHub
Jan 13, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
common/hexutil: allow empty strings when decoding JSON (#3559)
parent
c5df37c1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
5 deletions
+5
-5
json.go
common/hexutil/json.go
+2
-2
json_test.go
common/hexutil/json_test.go
+3
-3
No files found.
common/hexutil/json.go
View file @
01f6f2d7
...
...
@@ -237,7 +237,7 @@ func checkJSON(input []byte) (raw []byte, err error) {
return
nil
,
errNonString
}
if
len
(
input
)
==
2
{
return
nil
,
ErrEmptyString
return
nil
,
nil
// empty strings are allowed
}
if
!
bytesHave0xPrefix
(
input
[
1
:
])
{
return
nil
,
ErrMissingPrefix
...
...
@@ -255,7 +255,7 @@ func checkNumberJSON(input []byte) (raw []byte, err error) {
}
input
=
input
[
1
:
len
(
input
)
-
1
]
if
len
(
input
)
==
0
{
return
nil
,
ErrEmptyString
return
nil
,
nil
// empty strings are allowed
}
if
!
bytesHave0xPrefix
(
input
)
{
return
nil
,
ErrMissingPrefix
...
...
common/hexutil/json_test.go
View file @
01f6f2d7
...
...
@@ -60,13 +60,13 @@ var unmarshalBytesTests = []unmarshalTest{
{
input
:
""
,
wantErr
:
errNonString
},
{
input
:
"null"
,
wantErr
:
errNonString
},
{
input
:
"10"
,
wantErr
:
errNonString
},
{
input
:
`""`
,
wantErr
:
ErrEmptyString
},
{
input
:
`"0"`
,
wantErr
:
ErrMissingPrefix
},
{
input
:
`"0x0"`
,
wantErr
:
ErrOddLength
},
{
input
:
`"0xxx"`
,
wantErr
:
ErrSyntax
},
{
input
:
`"0x01zz01"`
,
wantErr
:
ErrSyntax
},
// valid encoding
{
input
:
`""`
,
want
:
referenceBytes
(
""
)},
{
input
:
`"0x"`
,
want
:
referenceBytes
(
""
)},
{
input
:
`"0x02"`
,
want
:
referenceBytes
(
"02"
)},
{
input
:
`"0X02"`
,
want
:
referenceBytes
(
"02"
)},
...
...
@@ -125,7 +125,6 @@ var unmarshalBigTests = []unmarshalTest{
{
input
:
""
,
wantErr
:
errNonString
},
{
input
:
"null"
,
wantErr
:
errNonString
},
{
input
:
"10"
,
wantErr
:
errNonString
},
{
input
:
`""`
,
wantErr
:
ErrEmptyString
},
{
input
:
`"0"`
,
wantErr
:
ErrMissingPrefix
},
{
input
:
`"0x"`
,
wantErr
:
ErrEmptyNumber
},
{
input
:
`"0x01"`
,
wantErr
:
ErrLeadingZero
},
...
...
@@ -133,6 +132,7 @@ var unmarshalBigTests = []unmarshalTest{
{
input
:
`"0x1zz01"`
,
wantErr
:
ErrSyntax
},
// valid encoding
{
input
:
`""`
,
want
:
big
.
NewInt
(
0
)},
{
input
:
`"0x0"`
,
want
:
big
.
NewInt
(
0
)},
{
input
:
`"0x2"`
,
want
:
big
.
NewInt
(
0x2
)},
{
input
:
`"0x2F2"`
,
want
:
big
.
NewInt
(
0x2f2
)},
...
...
@@ -198,7 +198,6 @@ var unmarshalUint64Tests = []unmarshalTest{
{
input
:
""
,
wantErr
:
errNonString
},
{
input
:
"null"
,
wantErr
:
errNonString
},
{
input
:
"10"
,
wantErr
:
errNonString
},
{
input
:
`""`
,
wantErr
:
ErrEmptyString
},
{
input
:
`"0"`
,
wantErr
:
ErrMissingPrefix
},
{
input
:
`"0x"`
,
wantErr
:
ErrEmptyNumber
},
{
input
:
`"0x01"`
,
wantErr
:
ErrLeadingZero
},
...
...
@@ -207,6 +206,7 @@ var unmarshalUint64Tests = []unmarshalTest{
{
input
:
`"0x1zz01"`
,
wantErr
:
ErrSyntax
},
// valid encoding
{
input
:
`""`
,
want
:
uint64
(
0
)},
{
input
:
`"0x0"`
,
want
:
uint64
(
0
)},
{
input
:
`"0x2"`
,
want
:
uint64
(
0x2
)},
{
input
:
`"0x2F2"`
,
want
:
uint64
(
0x2f2
)},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment