From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 72251 invoked by alias); 7 Aug 2016 03:27:37 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 72206 invoked by uid 89); 7 Aug 2016 03:27:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 spammy=H*F:D*net.au, r13, accounts, H*F:D*au X-HELO: mail108.syd.optusnet.com.au Received: from mail108.syd.optusnet.com.au (HELO mail108.syd.optusnet.com.au) (211.29.132.59) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 07 Aug 2016 03:27:19 +0000 Received: from dimstar.local.net (c110-22-56-26.eburwd6.vic.optusnet.com.au [110.22.56.26]) by mail108.syd.optusnet.com.au (Postfix) with ESMTP id A71541A1E25 for ; Sun, 7 Aug 2016 13:27:15 +1000 (AEST) Received: (qmail 10036 invoked by uid 501); 7 Aug 2016 03:27:11 -0000 Date: Sun, 07 Aug 2016 05:52:00 -0000 From: Duncan Roe To: cygwin@cygwin.com Subject: Re: /dev/ptmx fails with Azure accounts Message-ID: <20160807032711.GC31990@dimstar.local.net> Mail-Followup-To: cygwin@cygwin.com References: <1470156870.684316691@apps.rackspace.com> <20160803143207.GB17526@calimero.vinschen.de> <1470243211.01868925@apps.rackspace.com> <20160803180012.GC25811@calimero.vinschen.de> <20160803181649.GD25811@calimero.vinschen.de> <1470251109.311822327@apps.rackspace.com> <20160804070058.GA2333@calimero.vinschen.de> <20160805102751.GK25811@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160805102751.GK25811@calimero.vinschen.de> User-Agent: Mutt/1.6.1 (2016-04-27) X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=VIkg5I7X c=1 sm=1 tr=0 a=/xIuaNGu1NPzt0yKkvdCVQ==:117 a=/xIuaNGu1NPzt0yKkvdCVQ==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=7z1cN_iqozsA:10 a=EUPAZwX8AAAA:8 a=ycJivO2szCIlMT4d_koA:9 a=CjuIK1q_8ugA:10 a=1V7zw6amHxaEWGzIHHk6:22 X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg00104.txt.bz2 On Fri, Aug 05, 2016 at 12:27:51PM +0200, Corinna Vinschen wrote: > On Aug 4 09:00, Corinna Vinschen wrote: > > On Aug 3 15:05, rmora@aboutgolf.com wrote: > > > [...] > > > Unknown+User@Lenovo-PC /cygdrive/c/cygwin64 > > > $ ./azure-check2 > > > Sid: S-1-12-1-2043906341-1249388050-2635137163-399631282 > > > Dom\Name: AzureAD\RussellMora > > > Primary Group: > > > Sid: S-1-12-1-2043906341-1249388050-2635137163-399631282 > > > Dom\Name: AzureAD\RussellMora > > > NetUserGetInfo: 53 > > > > > > Unknown+User@Lenovo-PC /cygdrive/c/cygwin64 > > > $ > > > > > > (As an aside, I assume that the fact that the permissions on the > > > compiled executable are totally messed up, and thus the executable > > > won't run until I fix them via Windows, is incidental to the fact that > > > I am running under "Unknown+User" and thus you don't want any > > > information on that as well.....) > > > > Good thinking :) > > > > Can you please try the attached testcase? Probably my last straw. If > > that doesn't work as desired, support for AzureAD accounts will be very > > limited. > > I guess you're already on vacation, but never mind. > > I improved my testcase a bit and attached it to this mail. Can you please > try this one when you're back? > > > Thanks a lot, > Corinna > > -- > Corinna Vinschen Please, send mails regarding Cygwin to > Cygwin Maintainer cygwin AT cygwin DOT com > Red Hat > #include > #include > #define _WIN32_WINNT 0x0a00 > #define WINVER 0x0a00 > #include > #include > #include > #include > > int > main () > { > HANDLE tok; > PTOKEN_USER tp = (PTOKEN_USER) malloc (65536); > DWORD ret; > LPSTR str; > WCHAR name[256]; > WCHAR dom[256]; > DWORD nlen, dlen; > SID_NAME_USE type; > PDOMAIN_CONTROLLER_INFOW pci; > NET_API_STATUS status; > PUSER_INFO_3 ui3; > PUSER_INFO_24 ui24; > > if (!OpenProcessToken (GetCurrentProcess (), TOKEN_QUERY, &tok)) > { > printf ("OpenProcessToken: %u\n", GetLastError ()); > return 1; > } > if (!GetTokenInformation (tok, TokenUser, tp, 65536, &ret)) > { > printf ("GetTokenInformation(user): %u\n", GetLastError ()); > return 1; > } > ConvertSidToStringSidA (tp->User.Sid, &str); > printf (" Sid: %s\n", str); > LocalFree (str); > nlen = dlen = 256; > if (LookupAccountSidW (NULL, tp->User.Sid, name, &nlen, > dom, &dlen, &type)) > printf ("Dom\\Name: %ls\\%ls\n", dom, name); > else > printf ("LookupAccountSidW: %u\n", GetLastError ()); > > ret = DsGetDcNameW (NULL, dom, NULL, NULL, > DS_IS_FLAT_NAME | DS_RETURN_DNS_NAME, &pci); > if (ret != ERROR_SUCCESS) > { > printf ("DsGetDcNameW: %u\n", status); > pci->DomainControllerName = NULL; > } > > status = NetUserGetInfo (NULL, name, 3, (PBYTE *) &ui3); > if (status != NERR_Success) > printf ("NetUserGetInfo(NULL, 3): %u\n", status); > else > { > printf ("UserInfo NULL, 3:\n"); > printf (" Name: %ls\n", ui3->usri3_name); > NetApiBufferFree (ui3); > } > status = NetUserGetInfo (NULL, name, 24, (PBYTE *) &ui24); > if (status != NERR_Success) > printf ("NetUserGetInfo(NULL, 24): %u\n", status); > else > { > printf ("UserInfo NULL, 24:\n"); > printf (" InternetIdentity: %d\n", ui24->usri24_internet_identity); > printf (" Flags: 0x%08x\n", ui24->usri24_flags); > printf (" ProviderName: %ls\n", ui24->usri24_internet_provider_name); > printf (" PrincipalName: %ls\n", ui24->usri24_internet_principal_name); > ConvertSidToStringSidA (ui24->usri24_user_sid, &str); > printf (" Sid: %s\n", str); > LocalFree (str); > NetApiBufferFree (ui24); > } > > if (pci->DomainControllerName) > { > status = NetUserGetInfo (pci->DomainControllerName, name, > 3, (PBYTE *) &ui3); > if (status != NERR_Success) > printf ("NetUserGetInfo(%ls, 3): %u\n", pci->DomainControllerName, status); > else > { > printf ("UserInfo %ls, 3:\n", pci->DomainControllerName); > printf (" Name: %ls\n", ui3->usri3_name); > NetApiBufferFree (ui3); > } > > status = NetUserGetInfo (pci->DomainControllerName, name, > 24, (PBYTE *) &ui24); > if (status != NERR_Success) > printf ("NetUserGetInfo(%ls, 24): %u\n", > pci->DomainControllerName, status); > else > { > printf ("UserInfo %ls, 24:\n", pci->DomainControllerName); > printf (" InternetIdentity: %d\n", ui24->usri24_internet_identity); > printf (" Flags: 0x%08x\n", ui24->usri24_flags); > printf (" ProviderName: %ls\n", ui24->usri24_internet_provider_name); > printf (" PrincipalName: %ls\n", ui24->usri24_internet_principal_name); > ConvertSidToStringSidA (ui24->usri24_user_sid, &str); > printf (" Sid: %s\n", str); > LocalFree (str); > NetApiBufferFree (ui24); > } > } > > return 0; > } Hi Corrina, I've been trying your tests out of interest (no Axure accounts here), and they all worked except this last one which segfaults: 13:24:12$ gcc -g -o azure-check2 azure-check2.c -lnetapi32 13:24:21$ ./azure-check2 Sid: S-1-5-21-3870155988-15194067-1289216332-1002 Dom\Name: ROCKSTAR\Duncan DsGetDcNameW: 0 Segmentation fault (core dumped) 13:24:28$ cat azure-check2.exe.stackdump Exception: STATUS_ACCESS_VIOLATION at rip=001004012D6 rax=000000018027AB4C rbx=00000000FFFFCC60 rcx=0000000600000060 rdx=0000000000000000 rsi=000000018034A4D0 rdi=00000000FFFFCDF0 r8 =00000000FFFFC4AC r9 =00000001801523B0 r10=0000000100000000 r11=00000001004012D2 r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 rbp=00000000FFFFC7F0 rsp=00000000FFFFC770 program=C:\cygwin64\home\dunc\tests\azure-check2.exe, pid 5824, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args 000FFFFC7F0 001004012D6 (00000000020, 30001000000FF00, 00180047B61, 000FFFFD680) 000FFFFCCC0 00180047BD2 (00000000000, 00000000000, 00000000000, 00000000000) 00000000000 0018004591C (00000000000, 00000000000, 00000000000, 00000000000) 000FFFFFFF0 001800459B4 (00000000000, 00000000000, 00000000000, 00000000000) End of stack trace Cheers ... Duncan. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple