[tor-commits] [tor/release-0.2.3] Fix wildcarded address mappings from the control port

arma at torproject.org arma at torproject.org
Tue Sep 4 23:06:54 UTC 2012


commit 2ba52f409546961a0a950978a875b22bcb6bfaff
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Aug 15 17:59:30 2012 -0400

    Fix wildcarded address mappings from the control port
    
    Apparently, we weren't actually detecting wildcardedness when parsing
    them: whoops!
    
    bug 6244.  Bugfix on 0.2.3.9-alpha
---
 changes/bug6244_part_c |    6 ++++++
 src/or/control.c       |   15 ++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/changes/bug6244_part_c b/changes/bug6244_part_c
new file mode 100644
index 0000000..dea6e7b
--- /dev/null
+++ b/changes/bug6244_part_c
@@ -0,0 +1,6 @@
+  o Major bugfixes (controller):
+    - Make wildcarded addresses (that is, ones beginning with *.) work when
+      provided via the controller's MapAddress command.  Previously, they
+      were accepted, but we never actually noticed that they were wildcards.
+      Fix for bug 6244; bugfix on 0.2.3.9-alpha.
+
diff --git a/src/or/control.c b/src/or/control.c
index ce571f9..913d18a 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -1366,9 +1366,18 @@ handle_control_mapaddress(control_connection_t *conn, uint32_t len,
           smartlist_add_asprintf(reply, "250-%s=%s", address, to);
         }
       } else {
-        addressmap_register(from, tor_strdup(to), 1,
-                            ADDRMAPSRC_CONTROLLER, 0, 0);
-        smartlist_add_asprintf(reply, "250-%s", line);
+        const char *msg;
+        if (addressmap_register_auto(from, to, 1,
+                                     ADDRMAPSRC_CONTROLLER, &msg) < 0) {
+          smartlist_add_asprintf(reply,
+                                 "512-syntax error: invalid address mapping "
+                                 " '%s': %s", line, msg);
+          log_warn(LD_CONTROL,
+                   "Skipping invalid argument '%s' in MapAddress msg: %s",
+                   line, msg);
+        } else {
+          smartlist_add_asprintf(reply, "250-%s", line);
+        }
       }
     } else {
       smartlist_add_asprintf(reply, "512-syntax error: mapping '%s' is "





More information about the tor-commits mailing list