]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Only reject POSTDESCRIPTOR purpose= when the purpose is unrecognized
authorNick Mathewson <nickm@torproject.org>
Thu, 23 May 2019 12:24:29 +0000 (08:24 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 23 May 2019 12:24:29 +0000 (08:24 -0400)
Fixes bug 30580; bugfix on 0.4.1.1-alpha.

changes/ticket30580 [new file with mode: 0644]
src/feature/control/control_cmd.c

diff --git a/changes/ticket30580 b/changes/ticket30580
new file mode 100644 (file)
index 0000000..9ff1a33
--- /dev/null
@@ -0,0 +1,4 @@
+  o Minor bugfixes (controller):
+    - POSTDESCRIPTOR requests should work again. Previously, they were
+      broken if a "purpose=" flag was specified.  Fixes bug 30580;
+      bugfix on 0.4.1.1-alpha.
index 5555a2c5c49b75027fbad58c21a744655570ee48..17d5b0c7f33d098ffd5c53a532cc1d071769cc65 100644 (file)
@@ -1049,9 +1049,11 @@ handle_control_postdescriptor(control_connection_t *conn,
   line = config_line_find_case(args->kwargs, "purpose");
   if (line) {
     purpose = router_purpose_from_string(line->value);
-    control_printf_endreply(conn, 552, "Unknown purpose \"%s\"",
-                            line->value);
-    goto done;
+    if (purpose == ROUTER_PURPOSE_UNKNOWN) {
+      control_printf_endreply(conn, 552, "Unknown purpose \"%s\"",
+                              line->value);
+      goto done;
+    }
   }
   line = config_line_find_case(args->kwargs, "cache");
   if (line) {