summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2011-01-05 16:02:43 -0500
committerNick Mathewson <nickm@torproject.org>2011-01-05 16:02:43 -0500
commit31d6659d974800e972af43856405e8a7abe08f72 (patch)
treed971ce07d4ebd1f0da6bdf5e13cc536135b8b38a
parent69771bb5fc0fc472436c5f3fe6dfd3bd0f4929da (diff)
downloadtor-31d6659d974800e972af43856405e8a7abe08f72.tar.gz
tor-31d6659d974800e972af43856405e8a7abe08f72.zip
Fix a double-counting bug in addrmap_get_virtual_address
We were decrementing "available" twice for each in-use address we ran across. This would make us declare that we ran out of virtual addresses when the address space was only half full.
-rw-r--r--changes/bug23284
-rw-r--r--src/or/connection_edge.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/changes/bug2328 b/changes/bug2328
new file mode 100644
index 0000000000..e5ce492a82
--- /dev/null
+++ b/changes/bug2328
@@ -0,0 +1,4 @@
+ o Minor bugfixes
+ - Fix a bug where we would declare that we had run out of virtual
+ addresses when the address space was only half-exhausted. Bugfix
+ on 0.1.1.19-rc.
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 9ecdf5c7a9..6c23775315 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -1178,7 +1178,7 @@ addressmap_get_virtual_address(int type)
++next_virtual_addr;
--available;
log_info(LD_CONFIG, "%d addrs available", (int)available);
- if (! --available) {
+ if (! available) {
log_warn(LD_CONFIG, "Ran out of virtual addresses!");
return NULL;
}