On Apr 16 21:49, Denis Excoffier wrote: > On 2015-04-16 à 18:43, Corinna Vinschen wrote: > > On Apr 16 18:21, Corinna Vinschen wrote: > >> On Apr 16 08:17, Jim Reisert AD1C wrote: > >>> I am unable to start Cywin/X X-server 1.17.1 with this version. > >>> Previous releases of 2.0.0.x were OK. I had to revert to 1.7.35-1 for > >>> the time being. > >>> > >>> Other than updating to 2.0.0.5, I also installed the April 2015 "Patch > >>> Tuesday" updates from Microsoft. I don't know if the two are related. > >>> Windows 7 Home Premium, 64-bit > >>> > >>> Exception: STATUS_ACCESS_VIOLATION at eip=77C50F8A > >>> eax=00000000 ebx=612D67B0 ecx=00001000 edx=612D2648 esi=00000000 edi=0028C790 > >>> ebp=0028C608 esp=0028C604 program=C:\Cygwin\bin\XWin.exe, pid 1660, thread main > >>> cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B > >>> Stack trace: > >>> Frame Function Args > >>> 0028C608 77C50F8A (00000000, 612D2648, 00000000, 612D67B0) > >>> 0028C738 610CDA1F (000043FF, 00000000, 00000000, 80012428) > > > > On second thought, if I can trust the args output, that would be an > > fchmod(0,0). If there's no uid or gid 0, which there isn't unless you > > explicitely created them in the passwd/group files, the uid and gid have > > no SID connected to. This may be the culprit here. > > > >> I could add an extra check which refuses to change permissions if > >> the account's SID can't be found, but since this occurs very deep > >> in the call stack, the error message might be pretty vapid. > >> > >> Alternatively I just let this slip through and you might wonder > >> why the group hasn't changed in this case. > > > > I added a change to this effect, but it occuurs to me that this may > > be really just a missing test if the uid and gid values are backed by > > a real Windows account. It seems better to return EPERM here. > > > I applied the patch indicated (see in > https://cygwin.com/ml/cygwin-cvs/2015-q2/msg00033.html) and X11 now works > back again. > > Thank you 1000 times. Thanks for the early feedback. Still, I changed it for -0.6 again, because that's what had happened in the old code, too: If the uid or gid can't be resolved to a Windows SID, the function fails now with ENOENT. That's a non-POSIX extension because the problem just doesn't exist on real POSIX systems. Please give it a try. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat