diff options
| author | Tim Kientzle <kientzle@FreeBSD.org> | 2008-08-28 06:25:54 +0000 |
|---|---|---|
| committer | Tim Kientzle <kientzle@FreeBSD.org> | 2008-08-28 06:25:54 +0000 |
| commit | ca90133460f6ccf79eb46cd552ce04cc57da2c8d (patch) | |
| tree | b32a1ea10646df0035b9f63714f20e73ea186923 /lib/libarchive | |
| parent | b4f4ec48b2a4b90b8703b9e9a056252698b029bf (diff) | |
Notes
Diffstat (limited to 'lib/libarchive')
| -rw-r--r-- | lib/libarchive/archive_write_disk.c | 6 |
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."); |
