mirror of
https://https.git.savannah.gnu.org/git/gettext.git
synced 2026-01-27 01:44:30 +00:00
Be resilient about NULL pointers.
This commit is contained in:
parent
8063adb7ae
commit
e383f0c639
@ -1,3 +1,10 @@
|
||||
2006-05-24 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* printf-args.c (printf_fetchargs): Turn NULL pointers for
|
||||
TYPE_STRING and TYPE_WIDE_STRING into a non-NULL replacement.
|
||||
Reported by Thorsten Maerz <torte@netztorte.de> via
|
||||
Aaron Stone <aaron@serendipity.cx>.
|
||||
|
||||
2006-05-15 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* dcigettext.c (category_to_name): Adjust for _nl_category_names
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* Decomposed printf argument list.
|
||||
Copyright (C) 1999, 2002-2003, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2002-2003, 2005-2006 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published
|
||||
@ -91,10 +91,29 @@ printf_fetchargs (va_list args, arguments *a)
|
||||
#endif
|
||||
case TYPE_STRING:
|
||||
ap->a.a_string = va_arg (args, const char *);
|
||||
/* A null pointer is an invalid argument for "%s", but in practice
|
||||
it occurs quite frequently in printf statements that produce
|
||||
debug output. Use a fallback in this case. */
|
||||
if (ap->a.a_string == NULL)
|
||||
ap->a.a_string = "(NULL)";
|
||||
break;
|
||||
#ifdef HAVE_WCHAR_T
|
||||
case TYPE_WIDE_STRING:
|
||||
ap->a.a_wide_string = va_arg (args, const wchar_t *);
|
||||
/* A null pointer is an invalid argument for "%ls", but in practice
|
||||
it occurs quite frequently in printf statements that produce
|
||||
debug output. Use a fallback in this case. */
|
||||
if (ap->a.a_wide_string == NULL)
|
||||
{
|
||||
static const wchar_t wide_null_string[] =
|
||||
{
|
||||
(wchar_t)'(',
|
||||
(wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
|
||||
(wchar_t)')',
|
||||
(wchar_t)0
|
||||
};
|
||||
ap->a.a_wide_string = wide_null_string;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case TYPE_POINTER:
|
||||
|
||||
@ -1,3 +1,10 @@
|
||||
2006-05-24 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* printf-args.c (printf_fetchargs): Turn NULL pointers for
|
||||
TYPE_STRING and TYPE_WIDE_STRING into a non-NULL replacement.
|
||||
Reported by Thorsten Maerz <torte@netztorte.de> via
|
||||
Aaron Stone <aaron@serendipity.cx>.
|
||||
|
||||
2006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm>
|
||||
|
||||
* configure.ac (LTNOUNDEF): Set to -no-undefined also on mingw and
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* Decomposed printf argument list.
|
||||
Copyright (C) 1999, 2002-2003, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2002-2003, 2005-2006 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published
|
||||
@ -91,10 +91,29 @@ printf_fetchargs (va_list args, arguments *a)
|
||||
#endif
|
||||
case TYPE_STRING:
|
||||
ap->a.a_string = va_arg (args, const char *);
|
||||
/* A null pointer is an invalid argument for "%s", but in practice
|
||||
it occurs quite frequently in printf statements that produce
|
||||
debug output. Use a fallback in this case. */
|
||||
if (ap->a.a_string == NULL)
|
||||
ap->a.a_string = "(NULL)";
|
||||
break;
|
||||
#ifdef HAVE_WCHAR_T
|
||||
case TYPE_WIDE_STRING:
|
||||
ap->a.a_wide_string = va_arg (args, const wchar_t *);
|
||||
/* A null pointer is an invalid argument for "%ls", but in practice
|
||||
it occurs quite frequently in printf statements that produce
|
||||
debug output. Use a fallback in this case. */
|
||||
if (ap->a.a_wide_string == NULL)
|
||||
{
|
||||
static const wchar_t wide_null_string[] =
|
||||
{
|
||||
(wchar_t)'(',
|
||||
(wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
|
||||
(wchar_t)')',
|
||||
(wchar_t)0
|
||||
};
|
||||
ap->a.a_wide_string = wide_null_string;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case TYPE_POINTER:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user