]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix wildcarded address mappings from the control port
authorNick Mathewson <nickm@torproject.org>
Wed, 15 Aug 2012 21:59:30 +0000 (17:59 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 15 Aug 2012 21:59:30 +0000 (17:59 -0400)
Apparently, we weren't actually detecting wildcardedness when parsing
them: whoops!

bug 6244.  Bugfix on 0.2.3.9-alpha

changes/bug6244_part_c [new file with mode: 0644]
src/or/control.c

diff --git a/changes/bug6244_part_c b/changes/bug6244_part_c
new file mode 100644 (file)
index 0000000..dea6e7b
--- /dev/null
@@ -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.
+
index ce571f99f385f3b4b62e5bb37b5d52d90cea1626..913d18a7fc18f58cfcd4251be18c474952697e4d 100644 (file)
@@ -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 "