diff options
author | mm <mm@FreeBSD.org> | 2012-01-29 22:20:28 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2012-01-29 22:20:28 +0000 |
commit | d8d602d33c76a87dcb7a2fc928380f1be7af7c3a (patch) | |
tree | acc8ff743ececc0f7da3f38aff9daf092a48b4a9 /contrib/libarchive | |
parent | b230c4488eaa217a7e1258cd0a8dc01814630af0 (diff) | |
download | FreeBSD-src-d8d602d33c76a87dcb7a2fc928380f1be7af7c3a.zip FreeBSD-src-d8d602d33c76a87dcb7a2fc928380f1be7af7c3a.tar.gz |
Uupdate code to vendor rev. 4183 (release/2.8)
Fixes vendor issue 224:
"Mishandling CD9660 images with RockRidge extensions from FreeBSD makefs"
References:
http://code.google.com/p/libarchive/issues/detail?id=224
MFC after: 1 week
Diffstat (limited to 'contrib/libarchive')
-rw-r--r-- | contrib/libarchive/libarchive/archive_read_support_format_iso9660.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c b/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c index 5c5addbb..d74554b 100644 --- a/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c +++ b/contrib/libarchive/libarchive/archive_read_support_format_iso9660.c @@ -1778,6 +1778,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. */ |