aboutsummaryrefslogtreecommitdiff
path: root/lib/libarchive
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@FreeBSD.org>2008-08-28 06:25:54 +0000
committerTim Kientzle <kientzle@FreeBSD.org>2008-08-28 06:25:54 +0000
commitca90133460f6ccf79eb46cd552ce04cc57da2c8d (patch)
treeb32a1ea10646df0035b9f63714f20e73ea186923 /lib/libarchive
parentb4f4ec48b2a4b90b8703b9e9a056252698b029bf (diff)
Notes
Diffstat (limited to 'lib/libarchive')
-rw-r--r--lib/libarchive/archive_write_disk.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libarchive/archive_write_disk.c b/lib/libarchive/archive_write_disk.c
index 9319c3a08810..1e937ff05a01 100644
--- a/lib/libarchive/archive_write_disk.c
+++ b/lib/libarchive/archive_write_disk.c
@@ -863,7 +863,11 @@ restore_entry(struct archive_write_disk *a)
/* TODO: if it's a symlink... */
- if (a->flags & ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER) {
+ /*
+ * NO_OVERWRITE_NEWER doesn't apply to directories.
+ */
+ if ((a->flags & ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER)
+ && !S_ISDIR(a->st.st_mode)) {
if (!older(&(a->st), a->entry)) {
archive_set_error(&a->archive, 0,
"File on disk is not older; skipping.");