Xattr on FreeBSD ... Good Luck ?
Wesley W. Terpstra
wesley at terpstra.ca
Thu Nov 2 01:14:29 GMT 2006
On Nov 2, 2006, at 1:39 AM, Wayne Davison wrote:
> On Thu, Nov 02, 2006 at 12:24:36AM +0100, Wesley W. Terpstra wrote:
>> Urp! Found a bug already. Sorry. It will segfault on FreeBSD without
>> this small little fix.
>
> One more fix was needed: the new sys_llistxattr() function needs to
> return "len" when it is larger than "size", or longer lists of keys
> will
> not get processed (i.e. we use a size of 0 to ask for the size of the
> data).
Ahh right. I added that to prevent possible buffer overrun when
parsing the string. Your way dodges the problem as well, so all is good.
Did you try it on FreeBSD? I don't have a machine.
Why did you move the loop increment in sys_llistxattr to inside the
loop? It's valid the way I had it, and expressed the concept of
iteration cleanly. The optimizer also detects uninitialized values in
this case as well, so it's not a maintenance problem. Also, my idiom
works with continue.
Not important, I know. :-)
I note that both you and I missed:
+ AC_MSG_RESULT(Xattrs requested but not Linux or OS X.
Good luck...)
maybe
+ AC_MSG_RESULT(Xattrs requested, but not implemented on
this platform. Good luck...)
> I like your change that gets rid of the ".0S%" part of the Mac OS
> keys.
>
> What is your reason for wanting to get rid of the '%' from the fake
> stat attribute? Do some implementations not allow a % in the key?
No, but others are using 'reverse-DNS naming style' and this seems to
be standard-ish. That means a '.' and not a '%'.
Did you check the second link in my original email?: http://
www.freedesktop.org/wiki/CommonExtendedAttributes
Here's a general question: should linux really be sync'ing system and
root namespaces?
I don't think even root has permission to write arbitrary stuff in
system..?
For the FreeBSD case, I dropped the system namespace.
If you want to continue to sync root.*, then there is a problem right
now with linux->{mac,bsd}->linux. I didn't catch that case before,
sorry.
root.foo (linux) -> root.foo (osx) -> user.root.foo (linux)
More information about the rsync
mailing list