Messages in this thread | | | Date | Sun, 03 Feb 2013 07:59:27 -0600 | From | Dave Kleikamp <> | Subject | Re: [RFC] setxattr bugs |
| |
On 02/02/2013 10:30 PM, Al Viro wrote: > * JFS, since 2005: setxattr(name, "system.posix_acl_access", NULL, 0, 0) > succeeds, creating an empty EA with "system.posix_acl_access" as name. > Validity checks should apply _after_ > if (value == NULL) { /* empty EA, do not remove */ > value = ""; > value_len = 0; > } > and not before it.
This is probably a hold-over from weird OS/2 behavior that we really don't need to keep.
> * reiserfs, since 2009: setxattr(name, attr_name, NULL, 0, 0) is > treated as removexattr(name, attr_name), not as emptying given xattr. > > The question is, does either of those cross into "established > weirdness in ABI" or are they still at the "bugs to be fixed" stage? > > FWIW, I'm seriously tempted to stop passing NULL as the > third argument of ->setxattr(), essentially taking all those > if (!value) value = ""; pieces from individual ->setxattr() instances > to __vfs_setxattr_noperm() (all other callers of ->setxattr() never > pass NULL data or 0 size, so it's irrelevant for them). Would fix > both jfs and reiserfs weirdness.... > > Objections?
no objection from me. I can clean up the jfs code so that it no longer saves empty xattrs.
Thanks, Shaggy
| |