summaryrefslogtreecommitdiffstats
path: root/contrib/libarchive
diff options
context:
space:
mode:
authormdf <mdf@FreeBSD.org>2013-04-02 05:30:41 +0000
committermdf <mdf@FreeBSD.org>2013-04-02 05:30:41 +0000
commitda578c64920f38ac47d89857db4a2473b7d48932 (patch)
tree9874e26df73e0906a26347302a44a95f01d10702 /contrib/libarchive
parentccb6e7cd5aefa130c472d9f982c5e37c4d1d8fb8 (diff)
downloadFreeBSD-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.c4
-rw-r--r--contrib/libarchive/libarchive/test/test_extattr_freebsd.c3
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;
/*
OpenPOWER on IntegriCloud