I've noticed that
rsync -e ssh network:some
^C

would tend to leave cores behind on the distand machine.

Turns out rsync was trying to log a final error message... which could
not get written to stderr... which got detected by rwrite... which called
exit_cleanup... which in turn tried to write to stderr....... until all
stack got eaten up.

This patch fixes the infinite recursion.

--- cleanup.c.orig      Sat Dec 14 18:55:23 2002
+++ cleanup.c   Sat Dec 14 18:55:55 2002
@@ -43,6 +43,12 @@ void _exit_cleanup(int code, const char 
        int ocode = code;
        extern int keep_partial;
        extern int log_got_error;
+       static int in_cleanup = 0;
+
+       /* forbid recursive calls */
+       if (in_cleanup)
+               return;
+       in_cleanup = 1;
 
        signal(SIGUSR1, SIG_IGN);
        signal(SIGUSR2, SIG_IGN);
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html

Reply via email to