[erlang-patches] unix/sys_float.c mishandles errno

Bjorn Gustavsson <>
Thu Jan 24 10:35:40 CET 2008

"Matthew Dempsky" <> writes:

> The code in unix/sys_float.c assumes that if strtod(3) sets errno to
> ERANGE then there was a problem parsing the value.  However, according
> to POSIX, the actual indication of an error is that it also returned
> 0.0, HUGE_VAL, or -HUGE_VAL.  This causes a problem on OS X 10.5 when
> trying to read denormalized floating-point numbers because OS X's
> strtod(3) implementation sets errno to ERANGE for denormals.
> The patch below changes the errno check to be consistent with POSIX.


We will test the patch in our daily build and include it in R12B-1
if we'll encounter no problems.

Björn Gustavsson, Erlang/OTP, Ericsson AB

More information about the erlang-patches mailing list