Rsync 2.6.9pre2 tries to read ACLs of nonexistent files

Wayne Davison wayned at
Sun Oct 22 02:17:32 GMT 2006

On Sat, Oct 21, 2006 at 07:41:59PM -0400, Matt McCutchen wrote:
> To fix this, don't store racl into sxp until after racl has been
> filled (or get_acl has returned failure).

Doing that would require adding two free() calls to avoid leaking the
racl memory, but I've chosen to fix the problem by making sure that the
racl object is always initialized.  Thanks!

> I bet Checker would have caught this mistake if the build farm ran it
> on the ACL version of rsync.

It would be interesting to effect that (and I think I have a simple way
to do it).

> However, I still don't understand why a basis file found in a basis
> dir should cause real_ret to be set to zero while a fuzzy basis file
> shouldn't.

This is pretty straight forward:  an alternate basis file is considered
to be a drop-in substitute for the destination file when mentioning
changes due to its one-to-one correspondence.  A fuzzy match, on the
other hand, is just a potential source of data for a missing file.  So a
fuzzy match always itemizes as a new file, while a matched alternate
basis file is either identical (and itemized as unchanged) or different
(and the destination file is itemized as differing in the way that the
alternate basis differs from the source file).


More information about the rsync mailing list