summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-02-28 13:10:16 -0500
committerMike Frysinger <vapier@gentoo.org>2016-02-28 13:10:16 -0500
commit06d6ee574245abf41e2225c63738929bbd9073d3 (patch)
treebbce357245f666589ddda55d0c0bc4ebe9aeb53f
parentd5e90720fa85a719c6b73dacb8a392f49c1aa35d (diff)
downloadlibarchive-06d6ee574245abf41e2225c63738929bbd9073d3.tar.gz
add missing _PC_NAME_MAX checks
This file looks for _PC_NAME_MAX in a few places, but not all. Add some ifdefs in setup_current_filesystem too.
-rw-r--r--libarchive/archive_read_disk_posix.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
index f4805392..a2f78108 100644
--- a/libarchive/archive_read_disk_posix.c
+++ b/libarchive/archive_read_disk_posix.c
@@ -1576,6 +1576,7 @@ setup_current_filesystem(struct archive_read_disk *a)
#if defined(HAVE_STRUCT_STATFS_F_NAMEMAX)
t->current_filesystem->name_max = sfs.f_namemax;
#else
+# if defined(_PC_NAME_MAX)
/* Mac OS X does not have f_namemax in struct statfs. */
if (tree_current_is_symblic_link_target(t)) {
if (tree_enter_working_dir(t) != 0) {
@@ -1585,6 +1586,9 @@ setup_current_filesystem(struct archive_read_disk *a)
nm = pathconf(tree_current_access_path(t), _PC_NAME_MAX);
} else
nm = fpathconf(tree_current_dir_fd(t), _PC_NAME_MAX);
+# else
+ nm = -1;
+# endif
if (nm == -1)
t->current_filesystem->name_max = NAME_MAX;
else