aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2012-01-29 22:12:48 +0000
committerMartin Matuska <mm@FreeBSD.org>2012-01-29 22:12:48 +0000
commitd8b2811c01ad218932b237af23558ab000e58265 (patch)
tree9d52295bdb2cf2cd8d7f3d2b511e08400380cb17
parent1cd00a236b6b591357d4aa3d7d1d89bfbd92c2c9 (diff)
Update to vendor revision 4183vendor/libarchive/2.8
Notes
Notes: svn path=/vendor/libarchive/dist/; revision=230758 svn path=/vendor/libarchive/2.8/; revision=231197; tag=vendor/libarchive/2.8
-rw-r--r--libarchive/archive_read_support_format_iso9660.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c
index 85927444c187..52944e0ae40b 100644
--- a/libarchive/archive_read_support_format_iso9660.c
+++ b/libarchive/archive_read_support_format_iso9660.c
@@ -1775,6 +1775,19 @@ parse_file_info(struct archive_read *a, struct file_info *parent,
free(file);
return (NULL);
}
+ /*
+ * A file size of symbolic link files in ISO images
+ * made by makefs is not zero and its location is
+ * the same as those of next regular file. That is
+ * the same as hard like file and it causes unexpected
+ * error.
+ */
+ if (file->size > 0 &&
+ (file->mode & AE_IFMT) == AE_IFLNK) {
+ file->size = 0;
+ file->number = -1;
+ file->offset = -1;
+ }
} else
/* If there isn't SUSP, disable parsing
* rock ridge extensions. */