You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[AUD-011] [LOW] testUnsafeStrToSignedIntEmpty bounds its fuzz domain to uint16 on a premise the guard hoist made stale #81
testUnsafeStrToSignedIntEmpty narrows the fuzz domain to uint16 (end = bound(end, 0, type(uint16).max); start = bound(start, end, type(uint16).max)) on a premise the comment states and that is false of current source: "The negative sign check reads memory at start". In LibParseDecimal.unsafeDecimalStringToSignedInt the start >= end branch returns ParseEmptyDecimalString before the isMask sign check runs (src/lib/parse/LibParseDecimal.sol lines 151-153), and isMask is itself branchless-bounds-guarded, so no memory at start is ever read for an empty region. The unsigned counterpart (testUnsafeDecimalStrToIntEmpty) fuzzes the full uint256 pointer domain; the signed empty behavior is asserted only for pointers <= 65535, a narrowing justified by a misdescription of the code under test.
Activity