64-bit snprintf/vsnprintf overflow condition
Howland Craig D (Craig)
howland@LGSInnovations.com
Fri Oct 29 18:45:00 GMT 2010
INT_MAX is the behavior required by POSIX. See
http://www.opengroup.org/onlinepubs/9699919799/functions/fprintf.html
under the ERRORS section where EOVERFLOW is described.
Craig
-----Original Message-----
From: newlib-owner@sourceware.org [mailto:newlib-owner@sourceware.org]
On Behalf Of David A. Ramos
Sent: Friday, October 29, 2010 2:04 PM
To: newlib@sourceware.org
Subject: 64-bit snprintf/vsnprintf overflow condition
Hi,
It looks like the overflow condition in vsnprintf/snprintf is
unnecessarily restrictive for 64-bit architectures.
from libc/stdio/snprintf.c:
52 if (size > INT_MAX)
53 {
54 ptr->_errno = EOVERFLOW;
55 return EOF;
56 }
I believe it should use SIZE_MAX, rather than INT_MAX.
-David
More information about the Newlib
mailing list