From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic305-21.consmr.mail.ir2.yahoo.com (sonic305-21.consmr.mail.ir2.yahoo.com [77.238.177.83]) by sourceware.org (Postfix) with ESMTPS id 6EC40385BF81 for ; Sun, 24 May 2020 22:25:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6EC40385BF81 X-YMail-OSG: cm6M_IgVM1lPy4X4ohM7_OwKsOlo_Y3EYSOkjB2U9DPfyhO8mz4oo4jFqSHfsfF zG6PE2zvL1uwbVrULTtTsMtoa4yPA7bHiKOUb59hWkyG8SZCMcq.drkVWU1EGLAAxAwgWypcvENU 5ip.PM__470u2bPloqFxipvJXQ5HvqgWLUkAvZ5lHYPls9g.O57X_g9ui90zaRfe05I6xPKxNIyR ryl63OaksEBsRQqB8rxb2lKRpDYrJ_BgqjI7_F1APWcVk36J4ajsn5jXYVZa8sOWFSf8CQF1o1mZ hKRdScfi6e7dsS3VH4pl06WcUpbEwrZlXPIB1e5mj2iirXGsO3PsUBtnWTBEZ2z7U6rgVAks6ZX2 kfxd.dFNdK1.TnvZuSp2_OzeDfUont8rDH6CIUd5vShyjxQ2TNOfGyKp14SOB.wxqudFUTR7f.QE XLZ.7f9_1rxGSfzB_F1qKbEW1VzgtubLOKEaHDSuYlsojed8AuYmI.g6a4AurYYJ4hg.EWvw0mZ9 7NVEosT2SKOsbvEpHxCyTNBFSfeFlMP1Md1F.azV4Y9HdW0UQQIwhbbdw_PQWZDUOxOdAqws1eCj lsBulMk4rJeVp3ePBciRikA97iZTg0.mcAYOZ9qOF6P_yhtHo9qdeAkDFzFSrl_HhXUyvTf8BY1m U7A3Om3GD1gRUPmKJNqJLV4CToVRUbVu9I3gVp5m41aBRZGvLEIqVhAD5IC6n6vDxwlkidp1rp6Z JLRJONzjMkcgXrMpaFIpJ_Uh_3M5wcOwSxBSPeoUsq8KCO6yRFGR0lpUZkbMCGKeZ07.GwB24JID bq78qkW2rZEj2Xs0p5IHchCceYGfgfNw_5iNBM9GVjGb8cjgrupcQ0TVmxlhy_CMy1duJtZiImNy 73x5tAGZKQ72CIZ3020R0UgdLg1UjVx0.sltxPPGR5q5ONoiMH3ZWOeeQgRyY9CC4pvcrsZkw3gd lfaXZ0143EuYbWpYgN7TIFr7s409aYPWx4e5bESyNRpGeFVvn0CcpawbXba1YCXvGHR3TesDeKgy jUrFLklrqe0AQqgAFpQOkY9JHmJj0zqGltXXcEGT2dHfUQst0KXFCg1ArOMiNVmh9nMcUVDpgbfW lWbneEVNZft3uzXV.eCNjUZ.ZuC2h5CRvHG_J2GmazFSZx4wJXii1hLSl0OlomxvvOTYgs6L25hz OoBSJvB0paseHpW5cX9IyN3SYn3knyyKWE5jDJcTt79upfYtpVFXwDi4CFh5TbT7YLpKp9qaVtah WmoYZh9A4EfORY.f8s_5VRUBAqMm5kbDeVrn2Y4qShJ7NPlpS9zMPUq9._NCTZOCteJemctljMzF 0GVnp.y3KiEVpU95AFqPfi7lOYMr3Bz7Wst1DOYTyF8mF4w.RAwmUOrOjyWVvs4LLTHm1KsOn4BL I4FRitADwhgxRyw.rIajXIJxqTuzAqP8- Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.ir2.yahoo.com with HTTP; Sun, 24 May 2020 22:25:13 +0000 Received: by smtp406.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 6f104371e748a580692f58a4299a0e4e; Sun, 24 May 2020 22:25:08 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCH 2/2] Don't close process handle provided by WaitForDebugEvent Date: Mon, 25 May 2020 00:24:48 +0200 Message-Id: <20200524222448.11955-2-ssbssa@yahoo.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200524222448.11955-1-ssbssa@yahoo.de> References: <20200524222448.11955-1-ssbssa@yahoo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 200524-0, 05/24/2020), Outbound message X-Antivirus-Status: Clean X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2020 22:25:15 -0000 Only the process handle returned by OpenProcess or CreateProcess needs to be closed, the one provided by WaitForDebugEvent is closed automatically. gdbserver/ChangeLog: 2020-05-25 Hannes Domani * win32-low.cc (do_initial_child_stuff): Set open_process_used. (win32_clear_inferiors): Use open_process_used. (get_child_debug_event): Likewise. --- gdbserver/win32-low.cc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 4eb63b7ca2..e440e28913 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -88,6 +88,9 @@ static int soft_interrupt_requested = 0; by suspending all the threads. */ static int faked_breakpoint = 0; +/* True if current_process_handle needs to be closed. */ +bool open_process_used = false; + #ifdef __x86_64__ bool wow64_process = false; #endif @@ -383,6 +386,7 @@ do_initial_child_stuff (HANDLE proch, DWORD pid, int attached) soft_interrupt_requested = 0; faked_breakpoint = 0; + open_process_used = true; memset (¤t_event, 0, sizeof (current_event)); @@ -859,8 +863,11 @@ windows_nat::handle_output_debug_string (struct target_waitstatus *ourstatus) static void win32_clear_inferiors (void) { - if (current_process_handle != NULL) - CloseHandle (current_process_handle); + if (open_process_used) + { + CloseHandle (current_process_handle); + open_process_used = false; + } for_each_thread (delete_thread_info); siginfo_er.ExceptionCode = 0; @@ -1513,6 +1520,12 @@ get_child_debug_event (DWORD *continue_status, (unsigned) current_event.dwThreadId)); CloseHandle (current_event.u.CreateProcessInfo.hFile); + if (open_process_used) + { + CloseHandle (current_process_handle); + open_process_used = false; + } + current_process_handle = current_event.u.CreateProcessInfo.hProcess; main_thread_id = current_event.dwThreadId; @@ -1560,8 +1573,6 @@ get_child_debug_event (DWORD *continue_status, } } child_continue (DBG_CONTINUE, desired_stop_thread_id); - CloseHandle (current_process_handle); - current_process_handle = NULL; break; case LOAD_DLL_DEBUG_EVENT: -- 2.26.2