From: Andreas Henriksson Date: Tue, 20 Jul 2010 09:13:39 +0000 (-0400) Subject: Treat ENOSYS as ENOTSUP for optional features to avoid fatal errors. X-Git-Tag: v3.0.0a~911 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdf84b5e09852d64de7db5be6c079a387460d010;p=thirdparty%2Flibarchive.git Treat ENOSYS as ENOTSUP for optional features to avoid fatal errors. This fixes libarchive on (Debian GNU/Linux) HPPA, where ENOSYS is returned for xattrs. See http://code.google.com/p/libarchive/issues/detail?id=102 and original report at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=588925#10 SVN-Revision: 2537 --- diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c index 4d089797c..f552f3767 100644 --- a/libarchive/archive_read_disk_entry_from_file.c +++ b/libarchive/archive_read_disk_entry_from_file.c @@ -557,7 +557,7 @@ setup_xattrs(struct archive_read_disk *a, list_size = listxattr(path, NULL, 0); if (list_size == -1) { - if (errno == ENOTSUP) + if (errno == ENOTSUP || errno == ENOSYS) return (ARCHIVE_OK); archive_set_error(&a->archive, errno, "Couldn't list extended attributes"); diff --git a/libarchive/archive_write_disk.c b/libarchive/archive_write_disk.c index 5354025c8..8b86f70de 100644 --- a/libarchive/archive_write_disk.c +++ b/libarchive/archive_write_disk.c @@ -2638,7 +2638,7 @@ set_xattrs(struct archive_write_disk *a) name, value, size, 0); } if (e == -1) { - if (errno == ENOTSUP) { + if (errno == ENOTSUP || errno == ENOSYS) { if (!warning_done) { warning_done = 1; archive_set_error(&a->archive, errno, @@ -2705,7 +2705,7 @@ set_xattrs(struct archive_write_disk *a) namespace, name, value, size); } if (e != (int)size) { - if (errno == ENOTSUP) { + if (errno == ENOTSUP || errno == ENOSYS) { if (!warning_done) { warning_done = 1; archive_set_error(&a->archive, errno,