Make extra sure that authbuf can't overflow.
[rsync/rsync.git] / socket.c
index c850cd3..8a96061 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -58,7 +58,7 @@ static int establish_proxy_connection(int fd, char *host, int port,
                         proxy_user, ":", proxy_pass, NULL);
                len = strlen(buffer);
 
-               if ((len*8 + 5) / 6 >= (int)sizeof authbuf) {
+               if ((len*8 + 5) / 6 >= (int)sizeof authbuf - 3) {
                        rprintf(FERROR,
                                "authentication information is too long\n");
                        return -1;