2.6.2 not displaying permissions errors on client side

Wayne Davison
Sun, 09 May 2004 15:05:20 -0000

On Sun, May 09, 2004 at 03:35:47AM -0700, Robert Helmer
wrote:
> If there is an error writing to the remote file due to a "permission
> denied" error, rsync 2.6.1's client exits with an error code of
23, and
> an informative error message.

... and no error message logged in the server's log file.

Rsync has historically been hesitent to return error messages from a
server to the client for fear of revealing too much information.  The
2.6.0 and 2.6.1 releases were returning error messages but failing to
log them in the server's log file.  The 2.6.2 release reverts back to
the historical way this was handled.

A better solution for the future would be to log all errors to the
server log and send some/most of them to the user as well.  However,
that will be a complex change, and it has not been worked on yet.

A simpler solution would be to duplicate ALL the messages (the lack of
selectivity make this change easy).  The appended patch should do this,
if you so desire to go that route.

..wayne..
-------------- next part --------------
--- log.c	29 Apr 2004 19:34:31 -0000	1.72
+++ log.c	9 May 2004 15:02:02 -0000
@@ -182,8 +182,8 @@ void rwrite(enum logcode code, char *buf
 			send_msg((enum msgcode)code, buf, len);
 			return;
 		}
-		if (!am_daemon
-		    && io_multiplex_write((enum msgcode)code, buf, len))
+		if (io_multiplex_write((enum msgcode)code, buf, len)
+		    && !am_daemon)
 			return;
 	}