]> Cypherpunks repositories - gostls13.git/commit
strconv: check bitsize range in ParseInt and ParseUint
authorMartin Möhrmann <moehrmann@google.com>
Sat, 12 Aug 2017 19:02:43 +0000 (21:02 +0200)
committerRobert Griesemer <gri@golang.org>
Tue, 22 Aug 2017 13:37:40 +0000 (13:37 +0000)
commit63c428434692bdeab14115a1f70813feca7795e7
treeb7947516c5946ad65e60292254c4990ae6897813
parent4c0bba158e28384e7f58938b5b2930e3230220dc
strconv: check bitsize range in ParseInt and ParseUint

Return an error when a bitSize below 0 or above 64 is specified.

Move bitSize 0 handling in ParseInt after the call to ParseUint
to avoid a spill.

AMD64:
name       old time/op  new time/op  delta
Atoi       28.9ns ± 6%  27.4ns ± 6%  -5.21%  (p=0.002 n=20+20)
AtoiNeg    24.6ns ± 2%  23.1ns ± 1%  -6.04%  (p=0.000 n=19+18)
Atoi64     38.8ns ± 1%  38.0ns ± 1%  -2.03%  (p=0.000 n=17+20)
Atoi64Neg  35.5ns ± 1%  34.3ns ± 1%  -3.42%  (p=0.000 n=19+20)

Updates #21275

Change-Id: I70f0e4a16fa003f7ea929ca4ef56bd1a4181660b
Reviewed-on: https://go-review.googlesource.com/55139
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
src/strconv/atoi.go
src/strconv/atoi_test.go
src/strconv/export_test.go [new file with mode: 0644]