[tor-commits] [tor/release-0.4.5] Fix warnings in current debian-hardened CI.

nickm at torproject.org nickm at torproject.org
Mon Jan 11 19:38:23 UTC 2021


commit ccdbbae4eceb8f6c508b67d53d6242961bf2e6eb
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Jan 11 14:25:56 2021 -0500

    Fix warnings in current debian-hardened CI.
    
    We're getting "fallback annotation annotation in unreachable code"
    warnings when we build with ALL_BUGS_ARE_FATAL. This patch fixes
    that.
    
    Fixes bug 40241.  Bugfix on 0.3.5.4-alpha.
---
 changes/40241                   | 4 ++++
 src/core/or/channeltls.c        | 3 ++-
 src/core/or/circuitlist.c       | 2 ++
 src/feature/client/entrynodes.c | 2 ++
 src/feature/rend/rendclient.c   | 2 ++
 5 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/changes/40241 b/changes/40241
new file mode 100644
index 0000000000..c9b2e2c011
--- /dev/null
+++ b/changes/40241
@@ -0,0 +1,4 @@
+  o Minor bugfixes (compilation):
+    - Fix a compilation warning about unreachable fallthrough annotations
+      when building with "--enable-all-bugs-are-fatal" on some compilers.
+      Fixes bug 40241; bugfix on 0.3.5.4-alpha.
diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c
index 299ab88576..bdd82f3138 100644
--- a/src/core/or/channeltls.c
+++ b/src/core/or/channeltls.c
@@ -1225,8 +1225,9 @@ channel_tls_handle_var_cell(var_cell_t *var_cell, or_connection_t *conn)
        * the v2 and v3 handshakes. */
       /* But that should be happening any longer've disabled bufferevents. */
       tor_assert_nonfatal_unreached_once();
-
+#ifndef ALL_BUGS_ARE_FATAL
       FALLTHROUGH;
+#endif
     case OR_CONN_STATE_TLS_SERVER_RENEGOTIATING:
       if (!(command_allowed_before_handshake(var_cell->command))) {
         log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL,
diff --git a/src/core/or/circuitlist.c b/src/core/or/circuitlist.c
index 03d495cdfd..83e2124498 100644
--- a/src/core/or/circuitlist.c
+++ b/src/core/or/circuitlist.c
@@ -787,7 +787,9 @@ circuit_purpose_to_controller_hs_state_string(uint8_t purpose)
              "Unrecognized circuit purpose: %d",
              (int)purpose);
       tor_fragile_assert();
+#ifndef ALL_BUGS_ARE_FATAL
       FALLTHROUGH;
+#endif
 
     case CIRCUIT_PURPOSE_OR:
     case CIRCUIT_PURPOSE_C_GENERAL:
diff --git a/src/feature/client/entrynodes.c b/src/feature/client/entrynodes.c
index 8d9230b66b..c930fe244f 100644
--- a/src/feature/client/entrynodes.c
+++ b/src/feature/client/entrynodes.c
@@ -2263,7 +2263,9 @@ entry_guards_note_guard_success(guard_selection_t *gs,
       break;
     default:
       tor_assert_nonfatal_unreached();
+#ifndef ALL_BUGS_ARE_FATAL
       FALLTHROUGH;
+#endif
     case GUARD_CIRC_STATE_USABLE_IF_NO_BETTER_GUARD:
       if (guard->is_primary) {
         /* XXXX #20832 -- I don't actually like this logic. It seems to make
diff --git a/src/feature/rend/rendclient.c b/src/feature/rend/rendclient.c
index 5c9dbea8e3..acff805c0e 100644
--- a/src/feature/rend/rendclient.c
+++ b/src/feature/rend/rendclient.c
@@ -819,7 +819,9 @@ rend_client_report_intro_point_failure(extend_info_t *failed_intro,
         log_warn(LD_BUG, "Unknown failure type %u. Removing intro point.",
                  failure_type);
         tor_fragile_assert();
+#ifndef ALL_BUGS_ARE_FATAL
         FALLTHROUGH;
+#endif
       case INTRO_POINT_FAILURE_GENERIC:
         rend_cache_intro_failure_note(failure_type,
                                       (uint8_t *)failed_intro->identity_digest,





More information about the tor-commits mailing list