Cygwin bash currently fails to execute due to OpenProcessToken.
Looking in source, I see that advapi32.OpenProcessToken calls ntdll.NtOpenProcessToken.
This functions is a stub that returns always false today.
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
On Tuesday 19 November 2002 07:18 pm, Sylvain Petreolle wrote:
Cygwin bash currently fails to execute due to OpenProcessToken.
Looking in source, I see that advapi32.OpenProcessToken calls ntdll.NtOpenProcessToken.
This functions is a stub that returns always false today.
OpenProcessToken is an NT-only feature, right? What does Cygwin do for windows 9x?
Greg Turner wrote:
On Tuesday 19 November 2002 07:18 pm, Sylvain Petreolle wrote:
Cygwin bash currently fails to execute due to OpenProcessToken.
Looking in source, I see that advapi32.OpenProcessToken calls ntdll.NtOpenProcessToken.
This functions is a stub that returns always false today.
OpenProcessToken is an NT-only feature, right? What does Cygwin do for windows 9x?
Cygwin has a struct, wincap, which indicates what Windows capabilities are present. This has a member, has_security, which is checked before any security functions like OpenProcessToken are used. The struct is initialized in wincap.cc which calls GetVersionEx to determine the version of Windows being used, then copies a const version of the wincap struct for that Windows version onto the actual struct used. This has has_security set to false for non-NT versions of Windows. So presumably setting the Wine version should avoid this... haven't checked though, just looked at the cygwin sources
David
David, you have a point. The problem goes away when setting version to winme.
Now bash fails like this.
C>bash --login -i
157 [main] bash -141743176 sync_with_child: child 141745160(0x100) died before initialization with status code 0x0
12021 [main] bash -141743176 sync_with_child: *** child state waiting for longjmp
bash: fork: Resource temporarily unavailable
bash-2.05b$ logout
Looking into the source shows that the problem isn't in bash itself nor in cygwin dll.(I greped "died")
Cygwin has a struct, wincap, which indicates what Windows capabilities are present. This has a member, has_security, which is checked before any security
functions like OpenProcessToken are used. The struct is initialized in wincap.cc which calls GetVersionEx to determine the version of Windows being used, then copies a const version of the wincap struct for that Windows version onto the actual struct used. This has has_security set to false for non-NT versions of Windows. So presumably setting the Wine version should avoid this... haven't checked though, just looked at the cygwin sources
David
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com