mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Merge remote-tracking branch 'dgoulet/bug26523_033_01' into maint-0.3.3
This commit is contained in:
commit
9aeef05f8f
5
changes/bug26523
Normal file
5
changes/bug26523
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
o Minor bugfixes (hidden service, control port):
|
||||||
|
- The HSPOST command wasn't parsing properly the HSADDRESS= parameter and
|
||||||
|
thus not using it. It now handles it correctly. Fixes bug 26523; bugfix on
|
||||||
|
0.3.3.1-alpha. Patch by "akwizgran".
|
||||||
|
|
@ -4342,8 +4342,10 @@ handle_control_hspost(control_connection_t *conn,
|
|||||||
|
|
||||||
smartlist_t *args = smartlist_new();
|
smartlist_t *args = smartlist_new();
|
||||||
|
|
||||||
/* If any SERVER= options were specified, try parse the options line */
|
/* If any SERVER= or HSADDRESS= options were specified, try to parse
|
||||||
if (!strcasecmpstart(argline, opt_server)) {
|
* the options line. */
|
||||||
|
if (!strcasecmpstart(argline, opt_server) ||
|
||||||
|
!strcasecmpstart(argline, opt_hsaddress)) {
|
||||||
/* encoded_desc begins after a newline character */
|
/* encoded_desc begins after a newline character */
|
||||||
cp = cp + 1;
|
cp = cp + 1;
|
||||||
encoded_desc = cp;
|
encoded_desc = cp;
|
||||||
@ -4366,11 +4368,12 @@ handle_control_hspost(control_connection_t *conn,
|
|||||||
hs_dirs = smartlist_new();
|
hs_dirs = smartlist_new();
|
||||||
smartlist_add(hs_dirs, node->rs);
|
smartlist_add(hs_dirs, node->rs);
|
||||||
} else if (!strcasecmpstart(arg, opt_hsaddress)) {
|
} else if (!strcasecmpstart(arg, opt_hsaddress)) {
|
||||||
if (!hs_address_is_valid(arg)) {
|
const char *address = arg + strlen(opt_hsaddress);
|
||||||
|
if (!hs_address_is_valid(address)) {
|
||||||
connection_printf_to_buf(conn, "512 Malformed onion address\r\n");
|
connection_printf_to_buf(conn, "512 Malformed onion address\r\n");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
onion_address = arg;
|
onion_address = address;
|
||||||
} else {
|
} else {
|
||||||
connection_printf_to_buf(conn, "512 Unexpected argument \"%s\"\r\n",
|
connection_printf_to_buf(conn, "512 Unexpected argument \"%s\"\r\n",
|
||||||
arg);
|
arg);
|
||||||
@ -4385,6 +4388,8 @@ handle_control_hspost(control_connection_t *conn,
|
|||||||
read_escaped_data(encoded_desc, encoded_desc_len, &desc_str);
|
read_escaped_data(encoded_desc, encoded_desc_len, &desc_str);
|
||||||
if (hs_control_hspost_command(desc_str, onion_address, hs_dirs) < 0) {
|
if (hs_control_hspost_command(desc_str, onion_address, hs_dirs) < 0) {
|
||||||
connection_printf_to_buf(conn, "554 Invalid descriptor\r\n");
|
connection_printf_to_buf(conn, "554 Invalid descriptor\r\n");
|
||||||
|
} else {
|
||||||
|
send_control_done(conn);
|
||||||
}
|
}
|
||||||
tor_free(desc_str);
|
tor_free(desc_str);
|
||||||
goto done;
|
goto done;
|
||||||
|
Loading…
Reference in New Issue
Block a user