Currently, __intscan, used by functions like strtol, does not seem to check for overflow during multiplication. https://git.musl-libc.org/cgit/musl/tree/src/internal/intscan.c#n69 It at the end checks against the limit, e.g. the size of a long https://git.musl-libc.org/cgit/musl/tree/src/internal/intscan.c#n90 However, if the value overflows and ends up in the range of the limit, errno will not be set. It seems that each multiplication operation needs to be checking for overflow and return errno if it ever happens.