Hi Pierre, On Fri, Jul 11, 2003 at 08:02:53PM -0400, Pierre A. Humblet wrote: > 2003-07-12 Pierre Humblet <[EMAIL PROTECTED]> > > * cygheap.h (enum impersonation): Delete. > (cygheap_user::impersonation_state): Delete. > (cygheap_user::current_token): New. > (cygheap_user::issetuid): Modify to use current_token. > (cygheap_user::token): Ditto. > (cygheap_user::deimpersonate): Ditto. > (cygheap_user::reimpersonate): Ditto. > (cygheap_user::has_impersonation_tokens): Ditto. > (cygheap_user::close_impersonation_tokens): Ditto. > * security.cc (cygwin_set_impersonation_token): Always set the token. > (verify_token): Change type of gsid to cygpsid. > (get_file_attribute): Use the effective ids. > * syscalls.cc (seteuid32): Modify to use cygheap_user::current_token. > * uinfo.cc (uinfo_init) Do not set cygheap->user.impersonation_state.
thanks for the patch but it has a problem. You're comparing tokens against NULL while the correct "NULL" value for tokens is INVALID_HANDLE_VALUE. Unfortunately I saw for the first time that you already did the same for external_token and internal_token. So currently the code sometimes compares with NULL and sometimes compares with INVALID_HANDLE_VALUE. Could you please change that to always use INVALID_HANDLE_VALUE? This implies to initialize current_token, external_token and internal_token all three to INVALID_HANDLE_VALUE. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Developer mailto:[EMAIL PROTECTED] Red Hat, Inc.