diff options
author | kientzle <kientzle@FreeBSD.org> | 2005-09-24 21:15:00 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2005-09-24 21:15:00 +0000 |
commit | 7326792e216e565f272c88a0b1fb681efed6b11d (patch) | |
tree | 44703b6f64458ef49eb087085c158f8547bfd2c2 /lib/libarchive/archive_read_support_format_iso9660.c | |
parent | 3c81bee51ebee49013fb019aa86aecae39f8dbe7 (diff) | |
download | FreeBSD-src-7326792e216e565f272c88a0b1fb681efed6b11d.zip FreeBSD-src-7326792e216e565f272c88a0b1fb681efed6b11d.tar.gz |
signed/unsigned fixes (thanks to GCC4) and a few related minor style corrections.
Diffstat (limited to 'lib/libarchive/archive_read_support_format_iso9660.c')
-rw-r--r-- | lib/libarchive/archive_read_support_format_iso9660.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/libarchive/archive_read_support_format_iso9660.c b/lib/libarchive/archive_read_support_format_iso9660.c index 6a47d7a..33806b9 100644 --- a/lib/libarchive/archive_read_support_format_iso9660.c +++ b/lib/libarchive/archive_read_support_format_iso9660.c @@ -425,6 +425,9 @@ archive_read_format_iso9660_read_data(struct archive *a, } bytes_read = (a->compression_read_ahead)(a, buff, 1); + if (bytes_read == 0) + archive_set_error(a, ARCHIVE_ERRNO_MISC, + "Truncated input file"); if (bytes_read <= 0) return (ARCHIVE_FATAL); if (bytes_read > iso9660->entry_bytes_remaining) @@ -496,7 +499,8 @@ parse_file_info(struct iso9660 *iso9660, struct file_info *parent, const unsigned char *rr_start, *rr_end; rr_end = (const unsigned char *)isodirrec + isodirrec->length[0]; - rr_start = isodirrec->name + isodirrec->name_len[0]; + rr_start = (const unsigned char *)isodirrec->name + + isodirrec->name_len[0]; if ((isodirrec->name_len[0] & 1) == 0) rr_start++; rr_start += iso9660->suspOffset; @@ -669,7 +673,8 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file, switch(flag) { case 0x01: /* Continue */ - archive_strncat(&file->symlink, data, nlen); + archive_strncat(&file->symlink, + (const char *)data, nlen); cont = 1; break; case 0x02: /* Current */ @@ -686,7 +691,8 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file, archive_strcat(&file->symlink, "hostname"); break; case 0: - archive_strncat(&file->symlink, data, nlen); + archive_strncat(&file->symlink, + (const char *)data, nlen); break; default: /* TODO: issue a warning ? */ |