[or-cvs] [tor/master] Fix/annotate deadcode for CID 402,403

Nick Mathewson nickm at seul.org
Tue Oct 27 02:40:46 UTC 2009


Author: Nick Mathewson <nickm at torproject.org>
Date: Mon, 26 Oct 2009 22:35:29 -0400
Subject: Fix/annotate deadcode for CID 402,403
Commit: 385853a282138a614bb2bd8d6fe95a1aa573c944

---
 src/or/control.c   |   44 ++++++++++++++++++++++----------------------
 src/or/hibernate.c |    3 +++
 2 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/src/or/control.c b/src/or/control.c
index d4b0bdb..7bc8fa7 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -830,36 +830,36 @@ handle_control_loadconf(control_connection_t *conn, uint32_t len,
 
   retval = options_init_from_string(body, CMD_RUN_TOR, NULL, &errstring);
 
-  if (retval != SETOPT_OK) {
+  if (retval != SETOPT_OK)
     log_warn(LD_CONTROL,
              "Controller gave us config file that didn't validate: %s",
              errstring);
-    switch (retval) {
-      case SETOPT_ERR_PARSE:
-        msg = "552 Invalid config file";
-        break;
-      case SETOPT_ERR_TRANSITION:
-        msg = "553 Transition not allowed";
-        break;
-      case SETOPT_ERR_SETTING:
-        msg = "553 Unable to set option";
-        break;
-      case SETOPT_ERR_MISC:
-      default:
-        msg = "550 Unable to load config";
-        break;
-      case SETOPT_OK:
-        tor_fragile_assert();
-        break;
-    }
+
+  switch (retval) {
+  case SETOPT_ERR_PARSE:
+    msg = "552 Invalid config file";
+    break;
+  case SETOPT_ERR_TRANSITION:
+    msg = "553 Transition not allowed";
+    break;
+  case SETOPT_ERR_SETTING:
+    msg = "553 Unable to set option";
+    break;
+  case SETOPT_ERR_MISC:
+  default:
+    msg = "550 Unable to load config";
+    break;
+  case SETOPT_OK:
+    break;
+  }
+  if (msg) {
     if (*errstring)
       connection_printf_to_buf(conn, "%s: %s\r\n", msg, errstring);
     else
       connection_printf_to_buf(conn, "%s\r\n", msg);
-    tor_free(errstring);
-    return 0;
+  } else {
+    send_control_done(conn);
   }
-  send_control_done(conn);
   return 0;
 }
 
diff --git a/src/or/hibernate.c b/src/or/hibernate.c
index 89f9aa7..d68682d 100644
--- a/src/or/hibernate.c
+++ b/src/or/hibernate.c
@@ -182,6 +182,9 @@ accounting_parse_options(or_options_t *options, int validate_only)
   case UNIT_DAY:
     d = 0;
     break;
+    /* Coverity dislikes unreachable default cases; some compilers warn on
+     * switch statements missing a case.  Tell Coverity not to worry. */
+    /* coverity[dead_error_begin] */
   default:
     tor_assert(0);
   }
-- 
1.5.6.5




More information about the tor-commits mailing list