From 7d2e8c04f21294840159ca8f7393eb713487f8a4 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 23 Mar 2009 15:48:16 +0000 Subject: * smallprint.cc (__small_vsprintf): Handle NULL PWCHAR and PUNICODE_STRING arguments. (__small_vswprintf): Ditto. --- winsup/cygwin/smallprint.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/smallprint.cc') diff --git a/winsup/cygwin/smallprint.cc b/winsup/cygwin/smallprint.cc index 0f307b0d2..9a5cd1ac0 100644 --- a/winsup/cygwin/smallprint.cc +++ b/winsup/cygwin/smallprint.cc @@ -188,11 +188,12 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap) break; case 'W': w = va_arg (ap, PWCHAR); - RtlInitUnicodeString (&uw, w); - us = &uw; + RtlInitUnicodeString (us = &uw, w ?: L"(null)"); goto wfillin; case 'S': us = va_arg (ap, PUNICODE_STRING); + if (!us) + RtlInitUnicodeString (us = &uw, L"(null)"); wfillin: { if (!sys_wcstombs (tmp, NT_MAX_PATH, us->Buffer, @@ -438,10 +439,12 @@ __small_vswprintf (PWCHAR dst, const WCHAR *fmt, va_list ap) break; case L'W': w = va_arg (ap, PWCHAR); - RtlInitUnicodeString (us = &uw, w); + RtlInitUnicodeString (us = &uw, w ?: L"(null)"); goto fillin; case L'S': us = va_arg (ap, PUNICODE_STRING); + if (!us) + RtlInitUnicodeString (us = &uw, L"(null)"); fillin: if (us->Length / sizeof (WCHAR) < n) n = us->Length / sizeof (WCHAR); -- cgit v1.2.3