1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00
1998-04-15  Ulrich Drepper  <drepper@cygnus.com>

	* iconv/gconv_simple.c (__gconv_transform_ucs4_ascii): Fix typo in
	last change.

1998-04-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-minimal.c (__strtol_internal): Correct range check.  Fix
	return value on overflow.

1998-04-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/mkstemp.c (mkstemp): Change value and v to 64
	bits.

1998-04-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* malloc/mtrace.c (mtrace): Use standard function setvbuf instead
	of non-standard function setbuffer.

1998-04-15  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* stdio-common/perror.c: Include <string.h> for __strerror_r.
This commit is contained in:
Ulrich Drepper
1998-04-15 10:15:16 +00:00
parent 480bc72713
commit 479e9b3f21
6 changed files with 33 additions and 11 deletions

View File

@@ -247,15 +247,12 @@ __strtol_internal (const char *nptr, char **endptr, int base, int group)
{
unsigned long int digval = *nptr - '0';
if (result > LONG_MAX / 10
|| (result == (sign
? (unsigned long int) LONG_MAX
: (unsigned long int) LONG_MAX + 1) / 10
&& digval > (sign
? (unsigned long int) LONG_MAX
: (unsigned long int) LONG_MAX + 1) % 10))
|| (sign > 0 ? result == LONG_MAX / 10 && digval > LONG_MAX % 10
: (result == ((unsigned long int) LONG_MAX + 1) / 10
&& digval > ((unsigned long int) LONG_MAX + 1) % 10)))
{
errno = ERANGE;
return LONG_MAX * sign;
return sign > 0 ? LONG_MAX : LONG_MIN;
}
result *= 10;
result += digval;