SEGV on FreeBSD 4.8-STABLE with 2.6.2
Wayne Davison
wayned at samba.org
Mon May 3 01:26:16 GMT 2004
On Sun, May 02, 2004 at 03:33:03PM -0500, Albert Chin wrote:
> I'm getting a SEGV on a FreeBSD 4.8-STABLE box. The client is Solaris
> 9/SPARC. Both boxes run 2.6.2.
>
> The command I'm running is:
> $ rsync -arHRv --numeric-ids --delete --exclude=/opt/dist/cdrom \
> [paths] [server]:[path]
>
> If I whittle down what appears in [paths], then it works.
When the --delete option iterates over all the specified [paths] it
clears the delete-file_list after each one. This makes the "lastdir"
pointer no longer valid. The appended patch fixes this bug and also
a similar bug that could affect the batch code.
Thanks for the report.
..wayne..
-------------- next part --------------
--- flist.c 29 Apr 2004 19:37:15 -0000 1.218
+++ flist.c 3 May 2004 01:24:10 -0000 1.220
@@ -539,6 +539,7 @@ void receive_file_entry(struct file_stru
rdev_major = 0;
uid = 0, gid = 0;
*lastname = '\0';
+ lastdir_len = -1;
return;
}
@@ -745,7 +746,7 @@ struct file_struct *make_file(char *fnam
char *basename, *dirname, *bp;
unsigned short flags = 0;
- if (!flist) /* lastdir isn't valid if flist is NULL */
+ if (!flist || !flist->count) /* Ignore lastdir when invalid. */
lastdir_len = -1;
if (strlcpy(thisname, fname, sizeof thisname)
More information about the rsync
mailing list