glib r7917 - in trunk: . glib/gnulib
- From: tml svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7917 - in trunk: . glib/gnulib
- Date: Fri, 27 Feb 2009 07:46:32 +0000 (UTC)
Author: tml
Date: Fri Feb 27 07:46:32 2009
New Revision: 7917
URL: http://svn.gnome.org/viewvc/glib?rev=7917&view=rev
Log:
2009-02-27 Tor Lillqvist <tml novell com>
Bug 167569 - g_string_append_printf crashes on win32 when used
with a NULL argument
* glib/gnulib/vasnprintf.c (vasnprintf): Add workaround for buggy
programs. Patch by Owen.
Modified:
trunk/ChangeLog
trunk/glib/gnulib/vasnprintf.c
Modified: trunk/glib/gnulib/vasnprintf.c
==============================================================================
--- trunk/glib/gnulib/vasnprintf.c (original)
+++ trunk/glib/gnulib/vasnprintf.c Fri Feb 27 07:46:32 2009
@@ -574,11 +574,15 @@
# ifdef HAVE_WCHAR_T
if (type == TYPE_WIDE_STRING)
tmp_length =
- local_wcslen (a.arg[dp->arg_index].a.a_wide_string)
+ (a.arg[dp->arg_index].a.a_wide_string == NULL
+ ? 6 /* wcslen(L"(null)") */
+ : local_wcslen (a.arg[dp->arg_index].a.a_wide_string))
* MB_CUR_MAX;
else
# endif
- tmp_length = strlen (a.arg[dp->arg_index].a.a_string);
+ tmp_length = a.arg[dp->arg_index].a.a_string == NULL
+ ? 6 /* strlen("(null)") */
+ : strlen (a.arg[dp->arg_index].a.a_string);
break;
case 'p':
@@ -948,14 +952,18 @@
#endif
case TYPE_STRING:
{
- const char *arg = a.arg[dp->arg_index].a.a_string;
+ const char *arg = a.arg[dp->arg_index].a.a_string == NULL
+ ? "(null)"
+ : a.arg[dp->arg_index].a.a_string;
SNPRINTF_BUF (arg);
}
break;
#ifdef HAVE_WCHAR_T
case TYPE_WIDE_STRING:
{
- const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string == NULL
+ ? L"(null)"
+ : a.arg[dp->arg_index].a.a_wide_string;
SNPRINTF_BUF (arg);
}
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]