[newlib-cygwin] Cygwin: passwd/group: allow specifying "." as local computername

Corinna Vinschen corinna@sourceware.org
Sat Feb 16 17:36:00 GMT 2019


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7c34811440be0bf1e749d9f075f54320c706cb4b

commit 7c34811440be0bf1e749d9f075f54320c706cb4b
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Sat Feb 16 18:36:21 2019 +0100

    Cygwin: passwd/group: allow specifying "." as local computername
    
    Convenience only.  The resulting passwd/group antry is still
    fully qualified.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/uinfo.cc | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 53efc21..47fe247 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -2008,7 +2008,15 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap)
       if ((p = wcschr (name, cygheap->pg.nss_separator ()[0])))
 	{
 	  fq_name = true;
-	  *p = L'\\';
+	  /* Convenience: Translate domain name "." to local machine. */
+	  if (p == name + 1 && name[0] == L'.')
+	    {
+	      p = wcpcpy (name, cygheap->dom.account_flat_name ());
+	      *p = L'\\';
+	      sys_mbstowcs (p + 1, UNLEN + 1, arg.name + 2);
+	    }
+	  else
+	    *p = L'\\';
 	}
       sid = csid;
       ret = LookupAccountNameW (NULL, name, sid, &slen, dom, &dlen, &acc_type);



More information about the Cygwin-cvs mailing list