extattr problems?
Tim Kientzle
kientzle at freebsd.org
Sun Jan 11 19:48:45 PST 2009
I think this one is a bug. It appears that extattr_set_fd()
obeys the permissions on the file, not the permissions
of the descriptor. In particular, I see this on
FreeBSD 6.3:
[tim at dark /tmp]$ ./extattr_test
fd=3
extattr_set_fd() = -1
errno = 13 (Permission denied)
[tim at dark /tmp]$ cat extattr_test.c
#include <sys/types.h>
#include <sys/extattr.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
int
main(int argc, char **argv)
{
int n, fd;
fd = open("/tmp/test12345", O_RDWR | O_CREAT | O_EXCL, 0000);
printf("fd=%d\n", fd);
n = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER,
"testattr", "1234", 4);
printf("extattr_set_fd() = %d\n", n);
if (n != 0)
printf("errno = %d (%s)\n",
errno, strerror(errno));
exit(0);
}
More information about the freebsd-hackers
mailing list