|
@@ -1055,7 +1055,10 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len,
|
|
int bad_cookie=0, bad_password=0;
|
|
int bad_cookie=0, bad_password=0;
|
|
smartlist_t *sl = NULL;
|
|
smartlist_t *sl = NULL;
|
|
|
|
|
|
- if (TOR_ISXDIGIT(body[0])) {
|
|
|
|
|
|
+ if (!len || TOR_ISSPACE(body[0])) {
|
|
|
|
+ password = tor_strdup("");
|
|
|
|
+ password_len = 0;
|
|
|
|
+ } else if (TOR_ISXDIGIT(body[0])) {
|
|
cp = body;
|
|
cp = body;
|
|
while (TOR_ISXDIGIT(*cp))
|
|
while (TOR_ISXDIGIT(*cp))
|
|
++cp;
|
|
++cp;
|
|
@@ -1072,9 +1075,6 @@ handle_control_authenticate(control_connection_t *conn, uint32_t len,
|
|
tor_free(password);
|
|
tor_free(password);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
- } else if (TOR_ISSPACE(body[0])) {
|
|
|
|
- password = tor_strdup("");
|
|
|
|
- password_len = 0;
|
|
|
|
} else {
|
|
} else {
|
|
if (!decode_escaped_string(body, len, &password, &password_len)) {
|
|
if (!decode_escaped_string(body, len, &password, &password_len)) {
|
|
connection_write_str_to_buf("551 Invalid quoted string. You need "
|
|
connection_write_str_to_buf("551 Invalid quoted string. You need "
|