Fix sign of NaN returned by strtod (bug 23007).

As reported in bug 23007, strtod ignores any sign in the input string
in the case of a NaN result.  Thes patch fixes this.

Tested for x86_64 (in conjunction with tests to be added separately).

	[BZ #23007]
	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Return NaN of
	appropriate sign.
This commit is contained in:
Herman ten Brugge 2018-06-15 17:35:17 +00:00 committed by Joseph Myers
parent 14beef7575
commit b0debe14fc
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-06-15 Herman ten Brugge <hermantenbrugge@home.nl>
[BZ #23007]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Return NaN of
appropriate sign.
2018-06-14 Florian Weimer <fweimer@redhat.com>
[BZ #23290]

View File

@ -678,7 +678,7 @@ ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group,
if (endptr != NULL)
*endptr = (STRING_TYPE *) cp;
return retval;
return negative ? -retval : retval;
}
/* It is really a text we do not recognize. */