diff options
-rw-r--r-- | changes/bug5760 | 3 | ||||
-rw-r--r-- | src/or/control.c | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/changes/bug5760 b/changes/bug5760 new file mode 100644 index 000000000..a26407b58 --- /dev/null +++ b/changes/bug5760 @@ -0,0 +1,3 @@ + o Major bugfixes: + - End AUTHCHALLENGE error response messages with a CRLF. Fixes bug 5760; + bugfix on 0.2.3.16-alpha, and backported to maint-0.2.2 diff --git a/src/or/control.c b/src/or/control.c index 397bb53ab..ec0bb8a7c 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -2986,13 +2986,13 @@ handle_control_authchallenge(control_connection_t *conn, uint32_t len, cp += strlen("SAFECOOKIE"); } else { connection_write_str_to_buf("513 AUTHCHALLENGE only supports SAFECOOKIE " - "authentication", conn); + "authentication\r\n", conn); connection_mark_for_close(TO_CONN(conn)); return -1; } if (!authentication_cookie_is_set) { - connection_write_str_to_buf("515 Cookie authentication is disabled", conn); + connection_write_str_to_buf("515 Cookie authentication is disabled\r\n", conn); connection_mark_for_close(TO_CONN(conn)); return -1; } @@ -3003,7 +3003,7 @@ handle_control_authchallenge(control_connection_t *conn, uint32_t len, decode_escaped_string(cp, len - (cp - body), &client_nonce, &client_nonce_len); if (newcp == NULL) { - connection_write_str_to_buf("513 Invalid quoted client nonce", + connection_write_str_to_buf("513 Invalid quoted client nonce\r\n", conn); connection_mark_for_close(TO_CONN(conn)); return -1; @@ -3017,7 +3017,7 @@ handle_control_authchallenge(control_connection_t *conn, uint32_t len, if (base16_decode(client_nonce, client_nonce_len, cp, client_nonce_encoded_len) < 0) { - connection_write_str_to_buf("513 Invalid base16 client nonce", + connection_write_str_to_buf("513 Invalid base16 client nonce\r\n", conn); connection_mark_for_close(TO_CONN(conn)); tor_free(client_nonce); @@ -3030,7 +3030,7 @@ handle_control_authchallenge(control_connection_t *conn, uint32_t len, cp += strspn(cp, " \t\n\r"); if (*cp != '\0' || cp != body + len) { - connection_write_str_to_buf("513 Junk at end of AUTHCHALLENGE command", + connection_write_str_to_buf("513 Junk at end of AUTHCHALLENGE command\r\n", conn); connection_mark_for_close(TO_CONN(conn)); tor_free(client_nonce); |