aboutsummaryrefslogtreecommitdiffstats
path: root/libarchive
diff options
context:
space:
mode:
Diffstat (limited to 'libarchive')
-rw-r--r--libarchive/archive.h4
-rw-r--r--libarchive/archive_entry.h2
-rw-r--r--libarchive/archive_write_disk_posix.c17
3 files changed, 7 insertions, 16 deletions
diff --git a/libarchive/archive.h b/libarchive/archive.h
index 9ad9260b41ad..7b196e7bb9ea 100644
--- a/libarchive/archive.h
+++ b/libarchive/archive.h
@@ -36,7 +36,7 @@
* assert that ARCHIVE_VERSION_NUMBER >= 2012108.
*/
/* Note: Compiler will complain if this does not match archive_entry.h! */
-#define ARCHIVE_VERSION_NUMBER 3004000
+#define ARCHIVE_VERSION_NUMBER 3004001
#include <sys/stat.h>
#include <stddef.h> /* for wchar_t */
@@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void);
/*
* Textual name/version of the library, useful for version displays.
*/
-#define ARCHIVE_VERSION_ONLY_STRING "3.4.0"
+#define ARCHIVE_VERSION_ONLY_STRING "3.4.1dev"
#define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
__LA_DECL const char * archive_version_string(void);
diff --git a/libarchive/archive_entry.h b/libarchive/archive_entry.h
index 71cc63653b92..a1989ffa80f8 100644
--- a/libarchive/archive_entry.h
+++ b/libarchive/archive_entry.h
@@ -30,7 +30,7 @@
#define ARCHIVE_ENTRY_H_INCLUDED
/* Note: Compiler will complain if this does not match archive.h! */
-#define ARCHIVE_VERSION_NUMBER 3004000
+#define ARCHIVE_VERSION_NUMBER 3004001
/*
* Note: archive_entry.h is for use outside of libarchive; the
diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c
index b1a0bb3843a2..283f3e787678 100644
--- a/libarchive/archive_write_disk_posix.c
+++ b/libarchive/archive_write_disk_posix.c
@@ -3544,26 +3544,16 @@ set_mode(struct archive_write_disk *a, int mode)
}
if (S_ISLNK(a->mode)) {
+#ifdef HAVE_LCHMOD
/*
- * If this is a symlink, use fchmod() or lchmod(). If the
+ * If this is a symlink, use lchmod(). If the
* platform doesn't support lchmod(), just skip it. A
* platform that doesn't provide a way to set
* permissions on symlinks probably ignores
* permissions on symlinks, so a failure here has no
* impact.
*/
-#ifdef HAVE_FCHMOD
- if (a->fd > 0)
- r2 = fchmod(a->fd, mode);
- else
-#endif
-#ifdef HAVE_LCHMOD
- r2 = lchmod(a->name, mode);
-#else
- /* We don't have lchmod() here and a fd is not given */
- r2 = 0;
-#endif
- if (r2 != 0) {
+ if (lchmod(a->name, mode) != 0) {
switch (errno) {
case ENOTSUP:
case ENOSYS:
@@ -3582,6 +3572,7 @@ set_mode(struct archive_write_disk *a, int mode)
r = ARCHIVE_WARN;
}
}
+#endif
} else if (!S_ISDIR(a->mode)) {
/*
* If it's not a symlink and not a dir, then use