summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_read_support_format_iso9660.c
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2005-09-24 21:15:00 +0000
committerkientzle <kientzle@FreeBSD.org>2005-09-24 21:15:00 +0000
commit7326792e216e565f272c88a0b1fb681efed6b11d (patch)
tree44703b6f64458ef49eb087085c158f8547bfd2c2 /lib/libarchive/archive_read_support_format_iso9660.c
parent3c81bee51ebee49013fb019aa86aecae39f8dbe7 (diff)
downloadFreeBSD-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.c12
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 ? */
OpenPOWER on IntegriCloud