Rsync 2.6.9pre2 tries to read ACLs of nonexistent files
hashproduct+rsync at gmail.com
Sat Oct 21 23:41:59 GMT 2006
On 10/21/06, Wayne Davison <wayned at samba.org> wrote:
> On Sat, Oct 21, 2006 at 04:27:17PM -0400, Matt McCutchen wrote:
> > if (preserve_acls && real_ret == 0)
> > get_acl(fname, &real_sx);
> That should be checking fnamecmp, not fname. I've just commited a fix
> for patches/acls.diff.
I still get the error message. There were two occurrences of
"get_acl(fname, &real_sx)" in generator.c, and you fixed only the one
that was not producing the error in my scenario. The other one needs
to be fixed too.
Moreover, not only do I get the error message, the sender complains
that the connection closed unexpectedly. In fact, the generator
crashed on the "free_acl(sxp);" call at line 521 of acls.c because it
tried to free the uninitialized pointers racl->users and racl->groups.
To fix this, don't store racl into sxp until after racl has been
filled (or get_acl has returned failure). I bet Checker would have
caught this mistake if the build farm ran it on the ACL version of
Attached is a metapatch to acls.diff that fixes the second get_acl
call and fixes the crash in get_acl. 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1356 bytes
Desc: not available
Url : http://lists.samba.org/archive/rsync/attachments/20061021/0f5f7af6/get_acl.bin
More information about the rsync