mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-11 14:41:50 +00:00
During HexFloat parsing, if exponent was too large, we would overflow the signed integer being used to store its value. We now use an uint32_t to avoid UB, then convert to int32_t when it's safe to do so. Also error out if the input exponent is > INT_MAX - 127, which ensures we will not wrap around and produce an invalid result when adding the exponent bias of 127. Bug: chromium:1240048 Bug: tint:1150 Change-Id: I1b57b2c965358b803ebb68ea70b76e759cdd3939 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/63120 Reviewed-by: David Neto <dneto@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com>