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:39:48 +00:00 committed by Tor Lillqvist
parent 1b60e2744a
commit 0d37c815d9
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)
Wed Aug 16 13:59:07 2006 Tim Janik <timj@gtk.org>
* tests/gobject/Makefile.am:

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)
Wed Aug 16 13:59:07 2006 Tim Janik <timj@gtk.org>
* tests/gobject/Makefile.am:

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 =