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? -- gmt "War is an ugly thing, but not the ugliest of things; the decayed and degraded state of moral and patriotic feeling which thinks that nothing is worth war is much worse. A man who has nothing for which he is willing to fight; nothing he cares about more than his own personal safety; is a miserable creature who has no chance of being free, unless made and kept so by the exertions of better persons than himself." -- John Stuart Mill
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
participants (3)
-
David Fraser -
Greg Turner -
Sylvain Petreolle