Quellcode durchsuchen

Fix client_process_auth

svn:r202
Nick Mathewson vor 22 Jahren
Ursprung
Commit
4631f3dcdf
1 geänderte Dateien mit 4 neuen und 4 gelöschten Zeilen
  1. 4 4
      src/or/connection_or.c

+ 4 - 4
src/or/connection_or.c

@@ -375,7 +375,7 @@ connection_t *connection_or_connect_as_or(routerinfo_t *router) {
 
 int or_handshake_client_send_auth(connection_t *conn) {
   int retval;
-  char buf[46];
+  char buf[48];
   char cipher[128];
   struct sockaddr_in me; /* my router identity */
 
@@ -439,7 +439,7 @@ int or_handshake_client_send_auth(connection_t *conn) {
 }
 
 int or_handshake_client_process_auth(connection_t *conn) {
-  char buf[128]; /* only 48 of this is expected to be used */
+  char buf[128]; /* only 56 of this is expected to be used */
   char cipher[128];
   uint32_t bandwidth;
   int retval;
@@ -468,7 +468,7 @@ int or_handshake_client_process_auth(connection_t *conn) {
         crypto_perror());
     return -1;
   }
-  else if (retval != 48)
+  else if (retval != 56)
   { 
     log(LOG_ERR,"Received an incorrect response from router %s:%u during authentication.",
         conn->address,conn->port);
@@ -496,7 +496,7 @@ int or_handshake_client_process_auth(connection_t *conn) {
     conn->bandwidth = bandwidth;
 
   /* reply is just local addr/port, remote addr/port, nonce */
-  memcpy(buf+12, buf+32, 8);
+  memcpy(buf+12, buf+48, 8);
 
   /* encrypt reply */
   retval = crypto_pk_public_encrypt(conn->pkey, buf, 20, cipher,RSA_PKCS1_PADDING);