Date: Tue, 13 Jan 2009 04:56:41 +0000 (UTC) From: Tim Kientzle <kientzle@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r187126 - head/lib/libarchive Message-ID: <200901130456.n0D4ufEC090315@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kientzle Date: Tue Jan 13 04:56:41 2009 New Revision: 187126 URL: http://svn.freebsd.org/changeset/base/187126 Log: "The first part is just to give more info, the latter part fixes an error to read files past the 32bit byte offset, for instance on DVDs." Submitted by: phk@ MFC after: 10 days Modified: head/lib/libarchive/archive_read_support_format_iso9660.c Modified: head/lib/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_iso9660.c Tue Jan 13 04:09:22 2009 (r187125) +++ head/lib/libarchive/archive_read_support_format_iso9660.c Tue Jan 13 04:56:41 2009 (r187126) @@ -466,7 +466,10 @@ archive_read_format_iso9660_read_header( * seek backwards to extract it, so issue a warning. */ if (file->offset < iso9660->current_position) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, - "Ignoring out-of-order file"); + "Ignoring out-of-order file @%x (%s) %jd < %jd", + file, + iso9660->pathname.s, + file->offset, iso9660->current_position); iso9660->entry_bytes_remaining = 0; iso9660->entry_sparse_offset = 0; release_file(iso9660, file); @@ -607,7 +610,7 @@ parse_file_info(struct iso9660 *iso9660, file->parent = parent; if (parent != NULL) parent->refcount++; - file->offset = toi(isodirrec + DR_extent_offset, DR_extent_size) + file->offset = (uint64_t)toi(isodirrec + DR_extent_offset, DR_extent_size) * iso9660->logical_block_size; file->size = toi(isodirrec + DR_size_offset, DR_size_size); file->mtime = isodate7(isodirrec + DR_date_offset);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901130456.n0D4ufEC090315>