]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Don't keep options in a local in run_main_loop_once.
authorNick Mathewson <nickm@torproject.org>
Fri, 5 Jan 2018 14:24:34 +0000 (09:24 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 5 Jan 2018 14:24:34 +0000 (09:24 -0500)
The options value can change between the get_options() and its
second use, based on setconf callbacks in the event loop.

src/or/main.c

index 9e51e35bcb82631ba0b2e7e858d620e34048a990..f0489b3b3a6041a61bd27dbe3e2180813154080b 100644 (file)
@@ -2750,8 +2750,6 @@ run_main_loop_once(void)
   if (main_loop_should_exit)
     return 0;
 
-  const or_options_t *options = get_options();
-
 #ifndef _WIN32
   /* Make it easier to tell whether libevent failure is our fault or not. */
   errno = 0;
@@ -2762,7 +2760,7 @@ run_main_loop_once(void)
   SMARTLIST_FOREACH(active_linked_connection_lst, connection_t *, conn,
                     event_active(conn->read_event, EV_READ, 1));
 
-  if (options->MainloopStats) {
+  if (get_options()->MainloopStats) {
     /* We always enforce that EVLOOP_ONCE is passed to event_base_loop() if we
      * are collecting main loop statistics. */
     called_loop_once = 1;
@@ -2780,7 +2778,7 @@ run_main_loop_once(void)
   loop_result = event_base_loop(tor_libevent_get_base(),
                                 called_loop_once ? EVLOOP_ONCE : 0);
 
-  if (options->MainloopStats) {
+  if (get_options()->MainloopStats) {
     /* Update our main loop counters. */
     if (loop_result == 0) {
       // The call was succesful.