forked from pool/schily
Jan Engelhardt
d85d8bf21e
OBS-URL: https://build.opensuse.org/package/show/utilities/schily?expand=0&rev=94
40 lines
1.3 KiB
Diff
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]);
|