[tor-commits] [tor/master] begin_cell_parse(): Add an assertion to please coverity.

asn at torproject.org asn at torproject.org
Thu Jul 4 14:15:07 UTC 2019


commit 0fa3dc3228a32fd21ff71e24e3c2e456e342e3b8
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Jun 28 11:27:59 2019 -0400

    begin_cell_parse(): Add an assertion to please coverity.
    
    Coverity doesn't understand that if begin_cell_parse() returns 0 and
    sets is_begindir to 0, its address field will always be set.
    
    Fixes bug 30126; bugfix on 0.2.4.7-alpha; Fixes CID 1447296.
---
 changes/ticket31026                      | 5 +++++
 scripts/maint/practracker/exceptions.txt | 4 ++--
 src/core/or/connection_edge.c            | 1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/changes/ticket31026 b/changes/ticket31026
new file mode 100644
index 000000000..6f6abcffb
--- /dev/null
+++ b/changes/ticket31026
@@ -0,0 +1,5 @@
+  o Minor bugfixes (coverity compliance):
+    - Add an assertion when parsing a BEGIN cell so that coverity can be sure
+      that we are not about to dereference a NULL address.
+      Fixes bug 31026; bugfix on 0.2.4.7-alpha.  This is CID
+      1447296.
diff --git a/scripts/maint/practracker/exceptions.txt b/scripts/maint/practracker/exceptions.txt
index 3ed76a2bf..e29d3b607 100644
--- a/scripts/maint/practracker/exceptions.txt
+++ b/scripts/maint/practracker/exceptions.txt
@@ -101,7 +101,7 @@ problem function-size /src/core/or/circuituse.c:circuit_get_open_circ_or_launch(
 problem function-size /src/core/or/circuituse.c:connection_ap_handshake_attach_circuit() 244
 problem function-size /src/core/or/command.c:command_process_create_cell() 156
 problem function-size /src/core/or/command.c:command_process_relay_cell() 132
-problem file-size /src/core/or/connection_edge.c 4595
+problem file-size /src/core/or/connection_edge.c 4596
 problem include-count /src/core/or/connection_edge.c 65
 problem function-size /src/core/or/connection_edge.c:connection_ap_expire_beginning() 117
 problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_rewrite() 192
@@ -109,7 +109,7 @@ problem function-size /src/core/or/connection_edge.c:connection_ap_handle_onion(
 problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_rewrite_and_attach() 423
 problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_send_begin() 111
 problem function-size /src/core/or/connection_edge.c:connection_ap_handshake_socks_resolved() 106
-problem function-size /src/core/or/connection_edge.c:connection_exit_begin_conn() 184
+problem function-size /src/core/or/connection_edge.c:connection_exit_begin_conn() 185
 problem function-size /src/core/or/connection_edge.c:connection_exit_connect() 102
 problem file-size /src/core/or/connection_or.c 3124
 problem include-count /src/core/or/connection_or.c 51
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index c08d2a9ff..091d9c9b0 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -3833,6 +3833,7 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ)
 
   if (! bcell.is_begindir) {
     /* Steal reference */
+    tor_assert(bcell.address);
     address = bcell.address;
     port = bcell.port;
 





More information about the tor-commits mailing list