diff options
author | mdf <mdf@FreeBSD.org> | 2013-04-02 05:30:41 +0000 |
---|---|---|
committer | mdf <mdf@FreeBSD.org> | 2013-04-02 05:30:41 +0000 |
commit | da578c64920f38ac47d89857db4a2473b7d48932 (patch) | |
tree | 9874e26df73e0906a26347302a44a95f01d10702 /contrib/libarchive | |
parent | ccb6e7cd5aefa130c472d9f982c5e37c4d1d8fb8 (diff) | |
download | FreeBSD-src-da578c64920f38ac47d89857db4a2473b7d48932.zip FreeBSD-src-da578c64920f38ac47d89857db4a2473b7d48932.tar.gz |
Fix return type of extattr_set_* and fix rmextattr(8) utility.
extattr_set_{fd,file,link} is logically a write(2)-like operation and
should return ssize_t, just like extattr_get_*. Also, the user-space
utility was using an int for the return value of extattr_get_* and
extattr_list_*, both of which return an ssize_t.
MFC after: 1 week
Diffstat (limited to 'contrib/libarchive')
-rw-r--r-- | contrib/libarchive/libarchive/archive_write_disk_posix.c | 4 | ||||
-rw-r--r-- | contrib/libarchive/libarchive/test/test_extattr_freebsd.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/contrib/libarchive/libarchive/archive_write_disk_posix.c b/contrib/libarchive/libarchive/archive_write_disk_posix.c index bbd50a6..9d94de1 100644 --- a/contrib/libarchive/libarchive/archive_write_disk_posix.c +++ b/contrib/libarchive/libarchive/archive_write_disk_posix.c @@ -3707,7 +3707,7 @@ set_xattrs(struct archive_write_disk *a) size_t size; archive_entry_xattr_next(entry, &name, &value, &size); if (name != NULL) { - int e; + ssize_t e; int namespace; if (strncmp(name, "user.", 5) == 0) { @@ -3734,7 +3734,7 @@ set_xattrs(struct archive_write_disk *a) e = extattr_set_file(archive_entry_pathname(entry), namespace, name, value, size); } - if (e != (int)size) { + if (e != (ssize_t)size) { if (errno == ENOTSUP || errno == ENOSYS) { if (!warning_done) { warning_done = 1; diff --git a/contrib/libarchive/libarchive/test/test_extattr_freebsd.c b/contrib/libarchive/libarchive/test/test_extattr_freebsd.c index de74b14..f1fe534 100644 --- a/contrib/libarchive/libarchive/test/test_extattr_freebsd.c +++ b/contrib/libarchive/libarchive/test/test_extattr_freebsd.c @@ -47,7 +47,8 @@ DEFINE_TEST(test_extattr_freebsd) struct stat st; struct archive *a; struct archive_entry *ae; - int n, fd; + ssize_t n; + int fd; int extattr_privilege_bug = 0; /* |