]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
scan-build: Be consistent with a needless check in circuitmux.c
authorNick Mathewson <nickm@torproject.org>
Sat, 19 Apr 2014 00:33:47 +0000 (20:33 -0400)
committerNick Mathewson <nickm@torproject.org>
Sat, 19 Apr 2014 00:35:59 +0000 (20:35 -0400)
In circuitmux_detach_all_circuits, we check whether an HT iterator
gives us NULL.  That should be impossible for an HT iterator.  But
our checking it has confused scan-build (justly) into thinking that
our later use of HT_NEXT_RMV might not be kosher.  I'm taking the
coward's route here and strengthening the check.  Bugfix on
fd31dd44. (Not a real bug though)

src/or/circuitmux.c

index 2d05c748ecb2dbdddbbbbe4b88ef9f75278d3412..52ebfef084b7d4c8bf90b25f5aefe5e7ce701b7a 100644 (file)
@@ -412,7 +412,11 @@ circuitmux_detach_all_circuits(circuitmux_t *cmux, smartlist_t *detached_out)
   i = HT_START(chanid_circid_muxinfo_map, cmux->chanid_circid_map);
   while (i) {
     to_remove = *i;
-    if (to_remove) {
+
+    if (! to_remove) {
+      log_warn(LD_BUG, "Somehow, an HT iterator gave us a NULL pointer.");
+      break;
+    } else {
       /* Find a channel and circuit */
       chan = channel_find_by_global_id(to_remove->chan_id);
       if (chan) {