Web lists-archives.com

Re: fixup_mmaps_after_fork failure with cygwin-3.0.0




On Feb 17 14:56, Ken Brown wrote:
> On 2/17/2019 4:13 AM, Corinna Vinschen wrote:
> > On Feb 17 10:08, Corinna Vinschen wrote:
> >> On Feb 17 00:11, Ken Brown wrote:
> >>> I'm getting a lot of errors like this when building emacs from its git repo:
> >>>
> >> Weird.  I built at least gawk and openssh with 3.0 already and I
> >> didn't notice this problem.
> >>
> >>> A bisection points to the following as the first bad commit:
> >>>[...]
> >>> I'll try to do some debugging and/or provide further information
> >>> tomorrow, but I thought I'd start with this preliminary report.
> >>
> >> That would be nice.  It's not clear to me which permission is missing.
> >> The first part of the patch has been reverted in 3.0.0, so
> >> child_info_spawn::get_parent_handle opens the parent with
> >> PROCESS_VM_READ again.  The second patch has been reworked as well,m
> >> the current perms are
> >>
> >> PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ | SYNCHRONIZE
> >>
> >> If I may place a bet, please try to replace
> >> PROCESS_QUERY_LIMITED_INFORMATION with PROCESS_QUERY_INFORMATION
> 
> That didn't change anything.  Just to make sure I understood correctly, here's 
> what I tried:
> 
> --- a/winsup/cygwin/sigproc.cc
> +++ b/winsup/cygwin/sigproc.cc
> @@ -814,7 +814,7 @@ child_info::child_info (unsigned in_cb, child_info_types chtype,
>        allow the child to copy cygheap etc. from the parent to itself.  If
>        we're forking, we also need handle duplicate access. */
>     parent = NULL;
> -  DWORD perms = PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ
> +  DWORD perms = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ
>                  | SYNCHRONIZE;
>     if (type == _CH_FORK)
>       {
> 
> > On second thought, an even better candidate may be PROCESS_VM_OPERATION.
> 
> That's even worse.  With that change, simply invoking 'make' leads to
> the same error.

PROCESS_VM_OPERATION has to be specified additionally, not replacing
PROCESS_QUERY_{LIMITED_}INFORMATION.  Sorry if that wasn't clear.

Another idea is to specify all process-specific permissions from
https://docs.microsoft.com/en-us/windows/desktop/ProcThread/process-security-and-access-rights
and then eliminate backwards.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer

Attachment: signature.asc
Description: PGP signature