diff options
author | Martin Matuska <mm@FreeBSD.org> | 2017-05-03 23:55:12 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2017-05-03 23:55:12 +0000 |
commit | 87a07d9d6c9aca33aa7189ddf8dc13fd4ed795e9 (patch) | |
tree | b8ac4af3d780f51917c8a060892b1633cce98aca /libarchive/archive_read_disk_entry_from_file.c | |
parent | 659b8836cb5cd1ff479c8644211f190e1ad9619d (diff) | |
download | src-87a07d9d6c9aca33aa7189ddf8dc13fd4ed795e9.tar.gz src-87a07d9d6c9aca33aa7189ddf8dc13fd4ed795e9.zip |
Notes
Diffstat (limited to 'libarchive/archive_read_disk_entry_from_file.c')
-rw-r--r-- | libarchive/archive_read_disk_entry_from_file.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c index 700f9e3ae1af..548ba89ef3db 100644 --- a/libarchive/archive_read_disk_entry_from_file.c +++ b/libarchive/archive_read_disk_entry_from_file.c @@ -928,11 +928,10 @@ setup_sparse(struct archive_read_disk *a, return (ARCHIVE_OK); /* Does filesystem support the reporting of hole ? */ - if (*fd < 0) { + if (*fd < 0) path = archive_read_disk_entry_setup_path(a, entry, fd); - if (path == NULL) - return (ARCHIVE_FAILED); - } + else + path = NULL; if (*fd >= 0) { #ifdef _PC_MIN_HOLE_SIZE @@ -943,6 +942,8 @@ setup_sparse(struct archive_read_disk *a, if (initial_off != 0) lseek(*fd, 0, SEEK_SET); } else { + if (path == NULL) + return (ARCHIVE_FAILED); #ifdef _PC_MIN_HOLE_SIZE if (pathconf(path, _PC_MIN_HOLE_SIZE) <= 0) return (ARCHIVE_OK); |