From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68080 invoked by alias); 1 Mar 2019 20:09:35 -0000 Mailing-List: contact cygwin-cvs-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-cvs-owner@cygwin.com Received: (qmail 68060 invoked by uid 9078); 1 Mar 2019 20:09:35 -0000 Date: Fri, 01 Mar 2019 20:09:00 -0000 Message-ID: <20190301200935.68059.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: authentication: Always initialize domain info X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: bffd21ad8047601e56d229e619bbcdb76096d975 X-Git-Newrev: 166913fb23dd7ac0c63976a2f4e40a9e44ca41ca X-SW-Source: 2019-q1/txt/msg00207.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=166913fb23dd7ac0c63976a2f4e40a9e44ca41ca commit 166913fb23dd7ac0c63976a2f4e40a9e44ca41ca Author: Corinna Vinschen Date: Fri Mar 1 21:08:09 2019 +0100 Cygwin: authentication: Always initialize domain info ...before calling any of its method. It's no safe bet that it's already initialized when calling s4uauth and adding it to load_user_profile certainly doesn't hurt. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/sec_auth.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/winsup/cygwin/sec_auth.cc b/winsup/cygwin/sec_auth.cc index ee740fa..2f04801 100644 --- a/winsup/cygwin/sec_auth.cc +++ b/winsup/cygwin/sec_auth.cc @@ -234,6 +234,10 @@ load_user_profile (HANDLE token, struct passwd *pw, cygpsid &usersid) WCHAR userpath[MAX_PATH]; PROFILEINFOW pi; + /* Initialize */ + if (!cygheap->dom.init ()) + return NULL; + extract_nt_dom_user (pw, domain, username); usersid.string (sid); debug_printf ("user: <%W> <%W> <%W>", username, domain, sid); @@ -1533,6 +1537,10 @@ s4uauth (bool logon, PCWSTR domain, PCWSTR user, NTSTATUS &ret_status) QUOTA_LIMITS quota; HANDLE token = NULL; + /* Initialize */ + if (!cygheap->dom.init ()) + return NULL; + push_self_privilege (SE_TCB_PRIVILEGE, true); if (logon)