Merge remote-tracking branch 'sebastian/bug2893'

This commit is contained in:
Nick Mathewson 2011-11-16 17:30:24 -05:00
commit 2408934516
2 changed files with 10 additions and 5 deletions

5
changes/bug2893 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes:
- Allow manual 'authenticate' commands to the controller interface
from nc as well as telnet. We were rejecting them because they
didn't come with the expected whitespace at the end of the command.
Bugfix on 0.1.1.1-alpha; fixes bug 2893.

View File

@ -1055,7 +1055,10 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len,
int bad_cookie=0, bad_password=0;
smartlist_t *sl = NULL;
if (TOR_ISXDIGIT(body[0])) {
if (!len) {
password = tor_strdup("");
password_len = 0;
} else if (TOR_ISXDIGIT(body[0])) {
cp = body;
while (TOR_ISXDIGIT(*cp))
++cp;
@ -1072,9 +1075,6 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len,
tor_free(password);
return 0;
}
} else if (TOR_ISSPACE(body[0])) {
password = tor_strdup("");
password_len = 0;
} else {
if (!decode_escaped_string(body, len, &password, &password_len)) {
connection_write_str_to_buf("551 Invalid quoted string. You need "
@ -3118,7 +3118,7 @@ connection_control_process_inbuf(control_connection_t *conn)
args = conn->incoming_cmd+cmd_len+1;
tor_assert(data_len>(size_t)cmd_len);
data_len -= (cmd_len+1); /* skip the command and NUL we added after it */
while (*args == ' ' || *args == '\t') {
while (TOR_ISSPACE(*args)) {
++args;
--data_len;
}