diff options
author | Martin Matuska <mm@FreeBSD.org> | 2012-01-29 22:12:48 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2012-01-29 22:12:48 +0000 |
commit | d8b2811c01ad218932b237af23558ab000e58265 (patch) | |
tree | 9d52295bdb2cf2cd8d7f3d2b511e08400380cb17 | |
parent | 1cd00a236b6b591357d4aa3d7d1d89bfbd92c2c9 (diff) |
Notes
-rw-r--r-- | libarchive/archive_read_support_format_iso9660.c | 13 |
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. */ |