Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-20837

GenerateConsoleCtrlEvent always hits an ASSERT(0) in ExitProcess

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.4.17
    • NTCore
    • None
    • e685ced6d03ccc6131234dc1622565a1efb937b9 (r23250)
    • 23,250

    Description

      Build: latest master as of writing (b84e01c87d180b063c47de8219e6f4a1c63748fd)

      Repro: Write and run a probe that from a service (SYSTEM) starts cmd.exe as a normal user CreateProcessAsUser() with piped stdio, create a long running child process (I used a simple sleep program), AttachConsole(), SetConsoleCtrlHandler(NULL, TRUE) and do GenerateConsoleCtrlEvent(CTRL_C_EVENT or CTRL_BREAK_EVENT, 0).

      Workaround: Using TerminateProcess() on cmd's children works.

       *** Assertion failed: 0
       ***   Source File: /home/dev0/IA/ReactOS/reactos-upstream/dll/win32/kernel32/client/proc.c, line 1418
       
      Break repeatedly, break Once, Ignore, terminate Process or terminate Thread (boipt)? 
      kdb:> o
      Execute '.cxr 0061FADC' to dump context
      (dll/win32/kernel32/client/console/console.c:97) Console Dispatcher Active: 0 0
      Unhandled exception
      ExceptionCode:    80000003
      CS:EIP 1b:7c96e30c
      DS 23 ES 23 FS 3b GS 0
      EAX: 00000000   EBX: 7c9851e8   ECX: 0061f884
      EDX: 00000028   EBP: 0061fdbc   ESI: 0000058a   ESP: 0061fac0
      EDI: 0061fdaa   EFLAGS: 00000202
      Address:
      <ntdll.dll:4e30c> (C:\ReactOS\System32\ntdll.dll@7c920000)
      Frames:
      <kernel32.dll:11fb9> (C:\ReactOS\system32\kernel32.dll@7c5b0000)
      <kernel32.dll:22032> (C:\ReactOS\system32\kernel32.dll@7c5b0000)
      <kernel32.dll:2229c> (C:\ReactOS\system32\kernel32.dll@7c5b0000)
      <kernel32.dll:1d164> (C:\ReactOS\system32\kernel32.dll@7c5b0000)
      

      Those addresses correspond to:

      dll/win32/kernel32/client/proc.c:1415 (ExitProcess)
      dll/win32/kernel32/client/console/console.c:90 (ConsoleControlDispatcher)
      dll/win32/kernel32/client/console/console.c:181 (ConsoleControlDispatcher)
      dll/win32/kernel32/client/thread.c:73 (BaseThreadStartup)
      

      Attachments

        Issue Links

          Activity

            People

              i-a-s i-a-s
              i-a-s i-a-s
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: