X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4f5b0756df0dfc925b9576db47ecce949c378e18..f328e0f3a8a1d4726b0d3315838c6a109d579acb:/socket.c diff --git a/socket.c b/socket.c index 7dfb258f..c6341ced 100644 --- a/socket.c +++ b/socket.c @@ -198,7 +198,7 @@ int open_socket_out(char *host, int port, const char *bind_address, strlcpy(buffer, h, sizeof buffer); /* Is the USER:PASS@ prefix present? */ - if ((cp = strchr(buffer, '@')) != NULL) { + if ((cp = strrchr(buffer, '@')) != NULL) { *cp++ = '\0'; /* The remainder is the HOST:PORT part. */ h = cp; @@ -506,6 +506,9 @@ void start_accept_loop(int port, int (*fn)(int, int)) int ret; for (i = 0; sp[i] >= 0; i++) close(sp[i]); + /* Re-open log file in child before possibly giving + * up privileges (see log_close() above). */ + log_open(); ret = fn(fd, fd); close_all(); _exit(ret);