[tor-commits] [tor/master] Fix valgrind errors in test_util_process

nickm at torproject.org nickm at torproject.org
Wed Oct 21 20:51:24 UTC 2015


commit ed0c2a5e3dec953d37736df6c86a81b4c74e108f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Oct 21 16:51:21 2015 -0400

    Fix valgrind errors in test_util_process
---
 src/test/test_util_process.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/test/test_util_process.c b/src/test/test_util_process.c
index 0dcf047..04a21b8 100644
--- a/src/test/test_util_process.c
+++ b/src/test/test_util_process.c
@@ -24,21 +24,23 @@ static void
 test_util_process_set_waitpid_callback(void *ignored)
 {
   (void)ignored;
-  waitpid_callback_t *res;
+  waitpid_callback_t *res1 = NULL, *res2 = NULL;
   int previous_log = setup_capture_of_logs(LOG_WARN);
   pid_t pid = (pid_t)42;
 
-  res = set_waitpid_callback(pid, temp_callback, NULL);
-  tt_assert(res);
+  res1 = set_waitpid_callback(pid, temp_callback, NULL);
+  tt_assert(res1);
 
-  res = set_waitpid_callback(pid, temp_callback, NULL);
-  tt_assert(res);
+  res2 = set_waitpid_callback(pid, temp_callback, NULL);
+  tt_assert(res2);
   tt_str_op(mock_saved_log_at(0), OP_EQ,
             "Replaced a waitpid monitor on pid 42. That should be "
             "impossible.\n");
 
  done:
   teardown_capture_of_logs(previous_log);
+  clear_waitpid_callback(res1);
+  clear_waitpid_callback(res2);
 }
 
 static void
@@ -55,9 +57,12 @@ test_util_process_clear_waitpid_callback(void *ignored)
   clear_waitpid_callback(res);
   tt_int_op(mock_saved_log_number(), OP_EQ, 0);
 
+#if 0
+  /* No.  This is use-after-free.  We don't _do_ that. XXXX */
   clear_waitpid_callback(res);
   tt_str_op(mock_saved_log_at(0), OP_EQ,
             "Couldn't remove waitpid monitor for pid 43.\n");
+#endif
 
  done:
   teardown_capture_of_logs(previous_log);



More information about the tor-commits mailing list