Merge pull request #24 from pelletier/pelletier/integer_overflow

Int overflow in queryparser
This commit is contained in:
Thomas Pelletier
2014-11-03 22:09:12 +01:00
2 changed files with 6 additions and 6 deletions
+3 -4
View File
@@ -2,7 +2,6 @@ package toml
import (
"fmt"
"math"
"testing"
)
@@ -110,7 +109,7 @@ func TestPathSliceStart(t *testing.T) {
assertPath(t,
"$[123:]",
buildPath(
newMatchSliceFn(123, math.MaxInt64, 1),
newMatchSliceFn(123, MaxInt, 1),
))
}
@@ -134,7 +133,7 @@ func TestPathSliceStartStep(t *testing.T) {
assertPath(t,
"$[123::7]",
buildPath(
newMatchSliceFn(123, math.MaxInt64, 7),
newMatchSliceFn(123, MaxInt, 7),
))
}
@@ -150,7 +149,7 @@ func TestPathSliceStep(t *testing.T) {
assertPath(t,
"$[::7]",
buildPath(
newMatchSliceFn(0, math.MaxInt64, 7),
newMatchSliceFn(0, MaxInt, 7),
))
}
+3 -2
View File
@@ -9,9 +9,10 @@ package toml
import (
"fmt"
"math"
)
const MaxInt = int(^uint(0) >> 1)
type queryParser struct {
flow chan token
tokensBuffer []token
@@ -203,7 +204,7 @@ loop: // labeled loop for easy breaking
func (p *queryParser) parseSliceExpr() queryParserStateFn {
// init slice to grab all elements
start, end, step := 0, math.MaxInt64, 1
start, end, step := 0, MaxInt, 1
// parse optional start
tok := p.getToken()