summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/external.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r--winsup/cygwin/external.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc
index 429a2875a..d9ab4d578 100644
--- a/winsup/cygwin/external.cc
+++ b/winsup/cygwin/external.cc
@@ -28,6 +28,7 @@ details. */
#include <unistd.h>
#include <stdlib.h>
#include <wchar.h>
+#include <iptypes.h>
child_info *get_cygwin_startup_info ();
@@ -254,10 +255,17 @@ cygwin_internal (cygwin_getinfo_types t, ...)
}
case CW_EXTRACT_DOMAIN_AND_USER:
{
+ WCHAR nt_domain[MAX_DOMAIN_NAME_LEN + 1];
+ WCHAR nt_user[UNLEN + 1];
+
struct passwd *pw = va_arg (arg, struct passwd *);
char *domain = va_arg (arg, char *);
char *user = va_arg (arg, char *);
- extract_nt_dom_user (pw, domain, user);
+ extract_nt_dom_user (pw, nt_domain, nt_user);
+ if (domain)
+ sys_wcstombs (domain, MAX_DOMAIN_NAME_LEN + 1, nt_domain);
+ if (user)
+ sys_wcstombs (user, UNLEN + 1, nt_user);
return 0;
}
case CW_CMDLINE: