SHA256
1
0
forked from pool/schily
schily/large_mac_iso.patch

40 lines
1.3 KiB
Diff

From: Adam Majer <amajer@suse.com>
Date: 2020-05-11 11:47:23+0000
Fix an integer overflow in partition table calculation when chrp-boot
is enabled and a large ISO image is created.
Index: cdrtools-3.02/mkisofs/mac_label.c
===================================================================
--- cdrtools-3.02.orig/mkisofs/mac_label.c
+++ cdrtools-3.02/mkisofs/mac_label.c
@@ -67,8 +67,8 @@ gen_prepboot_label(ml)
{
struct directory_entry *de;
int i = 0;
- int block;
- int size;
+ unsigned block;
+ unsigned size;
MacLabel *mac_label = (MacLabel *) ml;
if (verbose > 1) {
@@ -98,7 +98,7 @@ gen_prepboot_label(ml)
mac_label->image[i].startSect[2] = 0;
mac_label->image[i].startSect[3] = 0;
- size = (last_extent - session_start) * 2048 / 512;
+ size = (unsigned)(last_extent - session_start) * (2048 / 512);
mac_label->image[i].size[0] = size & 0xff;
mac_label->image[i].size[1] = (size >> 8) & 0xff;
mac_label->image[i].size[2] = (size >> 16) & 0xff;
@@ -115,7 +115,7 @@ gen_prepboot_label(ml)
/* NOTREACHED */
}
/* get size and block in 512-byte blocks */
- block = get_733(de->isorec.extent) * 2048 / 512;
+ block = get_733(de->isorec.extent) * (2048 / 512);
size = get_733(de->isorec.size) / 512 + 1;
fprintf(stderr, _("PReP boot partition %d is \"%s\"\n"),
i + 1, prep_boot_image[i - use_chrp_boot]);