[tor-commits] [tor/master] Report success when not terminating an already terminated process.

nickm at torproject.org nickm at torproject.org
Wed May 4 19:21:07 UTC 2016


commit c7b9e0b8ed7076525da185e25c2142b18b4d43e3
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed May 4 15:10:36 2016 -0400

    Report success when not terminating an already terminated process.
    
    Also, document the actual behavior and return values of
    tor_terminate_process.
    
    Fixes bug18686; bugfix on 0.2.3.9-alpha.
---
 changes/bug18686  |  5 +++++
 src/common/util.c | 11 ++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/changes/bug18686 b/changes/bug18686
new file mode 100644
index 0000000..23547d2
--- /dev/null
+++ b/changes/bug18686
@@ -0,0 +1,5 @@
+  o Minor bugfixes (pluggable transports):
+    - Avoid reporting a spurious error when we decide that we don't
+      need to terminate a pluggable transport because it has already
+      exited. Fixes bug 18686; bugfix on 0.2.5.5-alpha.
+
diff --git a/src/common/util.c b/src/common/util.c
index 04cc6b1..65af8a6 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -3626,8 +3626,13 @@ format_helper_exit_status(unsigned char child_state, int saved_errno,
 /* Maximum number of file descriptors, if we cannot get it via sysconf() */
 #define DEFAULT_MAX_FD 256
 
-/** Terminate the process of <b>process_handle</b>.
- *  Code borrowed from Python's os.kill. */
+/** Terminate the process of <b>process_handle</b>, if that process has not
+ * already exited.
+ *
+ * Return 0 if we succeeded in terminating the process (or if the process
+ * already exited), and -1 if we tried to kill the process but failed.
+ *
+ * Based on code originally borrowed from Python's os.kill. */
 int
 tor_terminate_process(process_handle_t *process_handle)
 {
@@ -3647,7 +3652,7 @@ tor_terminate_process(process_handle_t *process_handle)
   }
 #endif
 
-  return -1;
+  return 0; /* We didn't need to kill the process, so report success */
 }
 
 /** Return the Process ID of <b>process_handle</b>. */





More information about the tor-commits mailing list