Fix crash when printing large 64-bit values on Win32 using the %I64x

2006-08-20  Tor Lillqvist  <tml@novell.com>

	* glib/gnulib/vasnprintf.c (vasnprintf): Fix crash when printing
	large 64-bit values on Win32 using the %I64x format. (#351034,
	Neil Piercy)
This commit is contained in:
Tor Lillqvist 2006-08-20 13:37:36 +00:00 committed by Tor Lillqvist
parent fd3ecf11b7
commit 4978451ca1
3 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2006-08-20 Tor Lillqvist <tml@novell.com>
* glib/gnulib/vasnprintf.c (vasnprintf): Fix crash when printing
large 64-bit values on Win32 using the %I64x format. (#351034,
Neil Piercy)
2006-06-14 Tor Lillqvist <tml@novell.com>
* glib/gutils.c (g_listenv): Add Windows notes to doc comment.

View File

@ -1,3 +1,9 @@
2006-08-20 Tor Lillqvist <tml@novell.com>
* glib/gnulib/vasnprintf.c (vasnprintf): Fix crash when printing
large 64-bit values on Win32 using the %I64x format. (#351034,
Neil Piercy)
2006-06-14 Tor Lillqvist <tml@novell.com>
* glib/gutils.c (g_listenv): Add Windows notes to doc comment.

View File

@ -479,6 +479,16 @@ vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
+ 1 /* turn floor into ceil */
+ 2; /* account for leading sign or alternate form */
else
# endif
# ifdef HAVE_INT64_AND_I64
if (type == TYPE_INT64 || type == TYPE_UINT64)
tmp_length =
(unsigned int) (sizeof (unsigned __int64) * CHAR_BIT
* 0.25 /* binary -> hexadecimal */
)
+ 1 /* turn floor into ceil */
+ 2; /* account for leading sign or alternate form */
else
# endif
if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
tmp_length =