unless the nesting is already pretty deep, because there are normal
cases where exit_cleanup is nested shallowly. Patch from Marc Espie,
posted by Brian Poole.
broken. (Dave Dykstra)
* Prevent infinite recursion in cleanup code under certain circumstances.
- (Sviatoslav Sviridov)
+ (Sviatoslav Sviridov and Marc Espie)
* Fixed a bug that prevented rsync from creating intervening directories
when --relative-paths/-R is set. (Craig Barratt)
extern int log_got_error;
static int inside_cleanup = 0;
- if (inside_cleanup != 0) {
+ if (inside_cleanup > 10) {
/* prevent the occasional infinite recursion */
return;
}
- inside_cleanup = 1;
+ inside_cleanup++;
signal(SIGUSR1, SIG_IGN);
signal(SIGUSR2, SIG_IGN);