Thanks for looking at this. I've committed the code on the glibc trunk
now. If there are further problems please file a glibc bugzilla report
in the "hurd" componenet.
> When getxattr gets called with VALUE as NULL and *SIZE as 0 (to
> determine the length of the xattr value), SIZE will be smaller than
> BUFSZ and subsequently the callee gets 0 returned and believes no xattrs
> are present.
>
> We propose this instead:
>
> if (value != NULL && bufsz > *size)
> return ERANGE;
> *size = bufsz;
That fix leaks in the ERANGE case. I did a different fix.
Please verify it.
> As was pointed out before, those should return 0 on success, and not
> SIZE.
Fixed.
> Our tests seemed to have shown that most (all?) passive translators do
> not have the S_IPTRANS stat bit set, thus not reporting the
> gnu.translator xattr through listxattr. Are we missing something here?
I doubt this is true. If it is, it's a server-side bug. Note that
S_IPTRANS and the gnu.translator xattr are found on nodes opened with
O_NOTRANS. They will more or less never be seen by the file name-based
calls, only by f*xattr on an fd opened using O_NOTRANS.
Thanks,
Roland
___
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd