tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: extended attributes and lsextattr/extattr_list_file
Emmanuel Dreyfus <manu%netbsd.org@localhost> wrote:
[Linux flavor]
> - Attribute values cannot contain a NUL character
[FreeBSD flavor]
> - Attribute value cannot cannot be bigger than 255 bytes
This is nonsense posted too early in the morning :-) The attribute value
can contain random binary data in both API.
Attribute *names* have the constraints above in the extattr_list_file()
and listxattr() system calls. But since attribute names are passed as
NUL-terminated strings input arguments for get/set/remove operations of
both API, they cannot contain a NUL character anyway, both with FreeBSD
and Linux API.
So here is my fixed sumary:
listxattr() flistxattr() and llistxattr()
- #include <sys/xattr.h>
- Attribute names must include a namespace prefix delimited by a dot
(e.g.: system.foo)
- system, trusted, security and user namespaces are predefined with
their own access semantics
- One can use other random namespace, which will behave as user
namespace.
- Attributes names list is returned as NUL-separated strings
- Attribute values can contain random binary data
- Used in Linux, MacOS X and FUSE
extattr_list_file() extattr_list_fd() extattr_list_link()
- #include <sys/extattr.h>
- Attribute namespace is provided as an int
- system and user namespaces are defined
- Other namespaces values usage is a mystery.
- Attributes names list is returned as one-byte length prefixed, non NUL
terminated strings
- Attribute names cannot cannot be bigger than 255 bytes
- Attribute values can contain random binary data
- Used in FreeBSD
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index