Skip to content
Snippets Groups Projects
  1. Nov 27, 2023
    • Bernhard Übelacker's avatar
      ntdll: Add read and write to commited guard pages. · 7c0d8638
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55138
      
      
      wine bash.exe
      notepad.exe
      wine: Unhandled page fault on write access to 00000007FFFF81F8 at address 0000000180265986 (thread 0130), starting debugger...
      
      
      wine bash.exe -c 'WIN_ROOT="$(PATH=${MSYS2_PATH} exec /usr/bin/cygpath -Wu)"; echo $WINROOT'
      /usr/bin/bash: Zeile 1: /usr/bin/cygpath: Bad address
      /usr/bin/bash: Zeile 1: /usr/bin/cygpath: No error
      
      
      Based on: https://bugs.winehq.org/attachment.cgi?id=70483
        (Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47808)
      7c0d8638
    • Bernhard Übelacker's avatar
      server: Reset reported_events if socket gets reused. · c47a4b51
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      MSYS setup tries to setup some pacman/gpg key configuration.
      This involves starting dirmngr.exe which unfortunately hangs.
      Therefore gpg reports:
          gpg: connecting dirmngr at '/etc/pacman.d/gnupg/S.dirmngr' failed: IPC connect call failed
      And fails therefore "silently".
      
      The hang in dirmngr.exe looks to be a result of reusing a socket twice.
      When the first connection attempt failed, wineserver still has
      the reported_events set.
      Therefore on the second attempt WSAEnumNetworkEvents does no longer
      report those events.
      But fhandler_socket_wsock::wait_for_events gets just left when
      there are some events received.
      
      Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53574
      
      dirmngr.exe --server --no-detach --homedir /etc/pacman.d/gnupg --verbose
      
      (gdb) bt
      (gdb) print evts.lNetworkEvents
      $1 = 0
      c47a4b51
    • Bernhard Übelacker's avatar
      ws2_32: Disable check for local socket handles. · 23758ee3
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      MSYS does a `dup(sockfd)` via DuplicateHandle.
      Unfortunately that way the new handle is not contained in
      the ws2_32.socket_list.
      
      This change just disables this check to workaround this.
      
      
      Kind of related: https://bugs.winehq.org/show_bug.cgi?id=54413
      
      
      wine c:/msys64/usr/bin/git.exe clone --mirror git://sourceware.org/git/newlib-cygwin.git /home/bernhard/MSYS2-packages/msys2-runtime/msys2-runtime
      
      
      (rr) list fhandler_base::dup
      1320    int
      1321    fhandler_base::dup (fhandler_base *child, int flags)
      1322    {
      1323      debug_printf ("in fhandler_base dup");
      1324
      1325      HANDLE nh;
      1326      if (!nohandle () && !archetype)
      1327        {
      1328          if (!DuplicateHandle (GetCurrentProcess (), get_handle (),
      1329                                GetCurrentProcess (), &nh,
      1330                                0, !(flags & O_CLOEXEC), DUPLICATE_SAME_ACCESS))
      1331            {
      1332              debug_printf ("dup(%s) failed, handle %p, %E",
      1333                            get_name (), get_handle ());
      1334              __seterrno ();
      1335              return -1;
      1336            }
      1337
      1338          VerifyHandle (nh);
      1339          child->set_handle (nh);
      1340        }
      1341      return 0;
      1342    }
      (rr) print x
      $29 = (HANDLE) 0x150
      (rr) bt
      #0  fhandler_base::set_handle (this=0x800027a28, x=0x150) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/local_includes/fhandler.h:238
      #1  0x000000018011315a in fhandler_base::dup (this=0x800027318, child=0x800027a28, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/fhandler/base.cc:1339
      #2  0x000000018015a8c8 in fhandler_socket_wsock::dup (this=0x800027318, child=0x800027a28, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/fhandler/socket_inet.cc:558
      #3  0x000000018005f6ec in dtable::dup_worker (this=0x800004858, oldfh=0x800027318, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/dtable.cc:707
      #4  0x000000018005fa56 in dtable::dup3 (this=0x800004858, oldfd=3, newfd=4, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/dtable.cc:774
      #5  0x00000001800dd567 in dup (fd=3) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/syscalls.cc:96
      #6  0x00000001801c348b in _sigfe () at sigfe.s:36
      #7  0x0000000a00000003 in ?? ()
      #8  0x0000000000000040 in ?? ()
      #9  0x0a0a0a0a0a0a0a0a in ?? ()
      #10 0x0000000a00003e66 in ?? ()
      #11 0x0000000a00003e90 in ?? ()
      #12 0x000000010050d4b2 in git_connect_git (fd=fd@entry=0xa00003c40, hostandport=0xa00003e70 "sourceware.org", path=0xa00003e50 "/git/newlib-cygwin.git", prog=prog@entry=0x10067bcd9 <junk_leave_repo_msg+1913> "git-upload-pack", version=version@entry=protocol_v2, flags=flags@entry=0) at connect.c:1257
      #13 0x000000010050e4ad in git_connect (fd=fd@entry=0xa00003c40, url=0xa000033e0 "git://sourceware.org/git/newlib-cygwin.git", prog=0x10067bcd9 <junk_leave_repo_msg+1913> "git-upload-pack", flags=0) at connect.c:1437
      #14 0x0000000100622f65 in connect_setup (transport=transport@entry=0xa000038a0, for_push=for_push@entry=0) at transport.c:278
      #15 0x0000000100623043 in handshake (transport=0xa000038a0, for_push=0, options=0x67dfc800, must_list_refs=must_list_refs@entry=1) at transport.c:313
      #16 0x0000000100623254 in get_refs_via_connect (transport=<optimized out>, for_push=<optimized out>, options=<optimized out>) at transport.c:360
      #17 0x0000000100624f9c in transport_get_remote_refs (transport=transport@entry=0xa000038a0, transport_options=transport_options@entry=0x67dfc800) at transport.c:1474
      #18 0x0000000100426005 in cmd_clone (argc=<optimized out>, argv=<optimized out>, prefix=<optimized out>) at builtin/clone.c:1274
      #19 0x0000000100401330 in run_builtin (p=0x10065a218 <commands+504>, argc=argc@entry=4, argv=argv@entry=0x67dfcc08) at git.c:445
      #20 0x00000001004015e2 in handle_builtin (argc=4, argv=0x67dfcc08) at git.c:699
      #21 0x0000000100402aa3 in run_argv (argcp=argcp@entry=0x67dfcb70, argv=argv@entry=0x67dfcb78) at git.c:763
      #22 0x0000000100402f28 in cmd_main (argc=<optimized out>, argc@entry=5, argv=<optimized out>, argv@entry=0x67dfcc00) at git.c:898
      #23 0x00000001004ce4d7 in main (argc=5, argv=0x67dfcc00) at common-main.c:57
      23758ee3
    • Bernhard Übelacker's avatar
      ntdll: Ignore pointers outside of the current stack in exception handlers. · ddd98283
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      https://bugs.winehq.org/show_bug.cgi?id=52159
      
      01f0:err:virtual:virtual_setup_exception stack overflow 2896 bytes addr 0x1700563a3 stack 0x672004b0 (0x67200000-0x67201000-0x67e00000)
      ddd98283
    • Bernhard Übelacker's avatar
      server: Allow access with PROCESS_QUERY_INFORMATION. · 33d43cad
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      0128:fixme:sync:QueryUnbiasedInterruptTimePrecise (000000000031BB50): semi-stub.
            0 [main] gpg 1017 fixup_mmaps_after_fork: VirtualQueryEx failed for MAP_PRIVATE address 0x7FFC0000, Win32 error 5
        15823 [main] gpg 1017 C:\msys64\usr\bin\gpg.exe: *** fatal error in forked process - recreate_mmaps_after_fork_failed
      0128:trace:unixpid:NtTerminateProcess unixpid=120034 L"\"C:\\msys64\\usr\\bin\\gpg.exe\" --homedir /etc/pacman.d/gnupg/ --no-permission-warning -K --with-colons" self=1 NtCurrentTeb()=0x67fe0000 NtCurrentTeb()->Peb=0x67ff0000 :999
      8064141 [main] gpg 1016 dofork: child -1 - forked process 292 died unexpectedly, retry 0, exit code 0x100, errno 11
      00d4:fixme:virtual:get_extended_params Not supported requirements LowestStartingAddress 0x1000000000, Alignment (nil).
      gpg: Fehler beim "Forken" des Prozess: Resource temporarily unavailable
      gpg: failed to start agent '/usr/bin/gpg-agent': Resource temporarily unavailable
      gpg: can't connect to the agent: Resource temporarily unavailable
      gpg: error: GnuPG agent unusable. Please check that a GnuPG agent can be started.
      gpg: migration aborted
      00d4:trace:unixpid:NtTerminateProcess unixpid=120008 L"\"C:\\msys64\\usr\\bin\\gpg.exe\" --homedir /etc/pacman.d/gnupg/ --no-permission-warning -K --with-colons" self=1 NtCurrentTeb()=0x67fe0000 NtCurrentTeb()->Peb=0x67ff0000 :999
      33d43cad
    • Elizabeth Figura's avatar
    • Jinoh Kang's avatar
    • Jinoh Kang's avatar
      server: Add stub lookup_name implementation for named_pipe_device_file_ops. · 9a965040
      Jinoh Kang authored and Joel Holdsworth's avatar Joel Holdsworth committed
      Prepare allowing creating named pipes using \Device\NamedPipe\ as
      RootDirectory.
      9a965040
    • Jinoh Kang's avatar
      server: Pass the object subpath to open_file instead of rejecting it. · b1e15b61
      Jinoh Kang authored and Joel Holdsworth's avatar Joel Holdsworth committed
      This is required to emulate Windows NT virtual file systems (e.g.,
      \Device\NamedPipe).
      
      In general, Windows file system drivers process pathnames on its own
      (for IRP_MJ_CREATE), since putting every existing file into the
      in-memory namespace is slow and highly inefficient.
      
      To avoid regression, make the refactoring as close to no-op as possible.
      Some (subpath->len) checks could turn into an assert, but that seems
      highly superfluous and we don't know which are actually safe to do so.
      b1e15b61
    • Jinoh Kang's avatar
      server: Inline open_named_object() call in open_file_object handler. · 732146e4
      Jinoh Kang authored and Joel Holdsworth's avatar Joel Holdsworth committed
      Prepare for passing the remaining subpath after object namespace
      traversal to the open_file() method.
      732146e4
    • Jinoh Kang's avatar
  2. Nov 21, 2023
  3. Nov 20, 2023
Loading