From c94a1006c62d655fd44abcd527ebfdbe4f36702a Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Tue, 20 Oct 2009 14:52:43 +0000
Subject: [PATCH] 	* smallprint.cc (__small_vsprintf): Simplify UNICODE
 string handling 	and allow empty strings.

---
 winsup/cygwin/ChangeLog     |  5 +++++
 winsup/cygwin/smallprint.cc | 13 ++++---------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 83fea341b..aca36f9b2 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
+
+	* smallprint.cc (__small_vsprintf): Simplify UNICODE string handling
+	and allow empty strings.
+
 2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
 
 	* fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status
diff --git a/winsup/cygwin/smallprint.cc b/winsup/cygwin/smallprint.cc
index 9a5cd1ac0..bf6fd67eb 100644
--- a/winsup/cygwin/smallprint.cc
+++ b/winsup/cygwin/smallprint.cc
@@ -195,16 +195,11 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
 		  if (!us)
 		    RtlInitUnicodeString (us = &uw, L"(null)");
 		wfillin:
+		if (sys_wcstombs (tmp, NT_MAX_PATH, us->Buffer,
+				  us->Length / sizeof (WCHAR)))
 		  {
-		    if (!sys_wcstombs (tmp, NT_MAX_PATH, us->Buffer,
-				       us->Length / sizeof (WCHAR)))
-		      {
-			s = "invalid UNICODE_STRING";
-			goto fillin;
-		      }
-		    char *t = tmp;
-		    for (i = 0; *t && i < n; i++)
-		      *dst++ = *t++;
+		    s = tmp;
+		    goto fillin;
 		  }
 		  break;
 		default: