summaryrefslogtreecommitdiff
path: root/libarchive/archive_read_extract.c
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@gmail.com>2011-11-03 01:21:30 -0400
committerTim Kientzle <kientzle@gmail.com>2011-11-03 01:21:30 -0400
commit7457cf5404c114bff301fafd7d876632df07079c (patch)
tree7cc9ac0515c2820c9ead908d0192ba23425e69b0 /libarchive/archive_read_extract.c
parent51e7b57a994f4457fce3b239300349ebf88eacb7 (diff)
downloadlibarchive-7457cf5404c114bff301fafd7d876632df07079c.tar.gz
Issue #189: Don't rely on dev/ino being zero when they
have not been set. Instead, explicitly track when these values are set. In particular, this fixes the check that prevents adding an archive to itself on NetBSD. SVN-Revision: 3743
Diffstat (limited to 'libarchive/archive_read_extract.c')
-rw-r--r--libarchive/archive_read_extract.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libarchive/archive_read_extract.c b/libarchive/archive_read_extract.c
index d45ea61e..aad8ac51 100644
--- a/libarchive/archive_read_extract.c
+++ b/libarchive/archive_read_extract.c
@@ -100,8 +100,9 @@ archive_read_extract2(struct archive *_a, struct archive_entry *entry,
int r, r2;
/* Set up for this particular entry. */
- archive_write_disk_set_skip_file(ad,
- a->skip_file_dev, a->skip_file_ino);
+ if (a->skip_file_set)
+ archive_write_disk_set_skip_file(ad,
+ a->skip_file_dev, a->skip_file_ino);
r = archive_write_header(ad, entry);
if (r < ARCHIVE_WARN)
r = ARCHIVE_WARN;