aboutsummaryrefslogtreecommitdiff
path: root/lib/std/json
diff options
context:
space:
mode:
authorTravis Staloch <1562827+travisstaloch@users.noreply.github.com>2023-11-28 13:48:49 -0800
committerVeikka Tuominen <git@vexu.eu>2023-12-11 17:49:22 +0200
commit5bbacb0c8ce1aa59af5e898e255c544786059d06 (patch)
treeadbfde693ae4952daabce2aea03a3c6216acc846 /lib/std/json
parenta817e27c7d459c8bba4b41931a842158bf3df2d0 (diff)
downloadzig-5bbacb0c8ce1aa59af5e898e255c544786059d06.tar.gz
zig-5bbacb0c8ce1aa59af5e898e255c544786059d06.zip
fmt.parseWithSign(): prevent edge case overflows
previously when T was smaller than 8 bits, it was possible for base to overflow T (because base is a u8). this patch prevents this by accumulating into a U rather than T which is at least 8 bits wide. this is the best way i could think of to maintain performance. this will only affect parsing of integers less than 8 bits by adding one additional cast at return. additionally, this patch may be slightly slower to return an error for integers less than 8 bits which overflow because it will accumulate a few more digits before the overflow check at return. * add tests which previously overflowed when they shouldn't have closes #18157
Diffstat (limited to 'lib/std/json')
0 files changed, 0 insertions, 0 deletions