Package: isomaster Version: 1.3.9-1ubuntu1 Severity: important Tags: patch El Torito Boot records are being truncated resulting in un-bootable ISO images.
Discovered on Ubuntu where I've linked the bug report to a bzr branch containg the fix: https://bugs.launchpad.net/ubuntu/+bug/1266461i "Fixes failure of bootable images to boot because the El Torito boot catalog has a hard-coded sector count of 4 (2048 bytes) instead of using the actual boot image size." I have also notified the upstream publisher via his web-based contact form.
Description: use actual boot image size in El Torito boot catalog Author: TJ <[email protected]> Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+bug/1266461 Forwarded: yes Last-Update: 2014-01-06 Index: isomaster/bk/bkWrite.c =================================================================== --- isomaster.orig/bk/bkWrite.c 2014-01-06 15:17:49.384136000 +0000 +++ isomaster/bk/bkWrite.c 2014-01-06 15:28:47.808981891 +0000 @@ -1174,9 +1174,8 @@ /* load segment leave it at 0 */ /* system type, leave it at 0 */ /* 1 byte unused, leave it at 0 */ - /* sector count. i have yet to see a boot record with a sector count - * that's not 4 */ - write721ToByteArray(&(buffer[38]), 4); + /* sector count */ + write721ToByteArray(&(buffer[38]), volInfo->bootRecordSize / NBYTES_VIRTUAL_SECTOR); /* logical block number of boot record file. this is not known until * after that file is written */ *bootRecordSectorNumberOffset = wcSeekTell(volInfo) + 40; Index: isomaster/bk/bkInternal.h =================================================================== --- isomaster.orig/bk/bkInternal.h 2014-01-06 16:13:25.003211000 +0000 +++ isomaster/bk/bkInternal.h 2014-01-06 16:24:38.565597428 +0000 @@ -26,6 +26,8 @@ #define NLS_SYSTEM_AREA 16 /* number of bytes in a logical block (in practice always 2048) */ #define NBYTES_LOGICAL_BLOCK 2048 +/* for el torito boot images */ +#define NBYTES_VIRTUAL_SECTOR 512 /******************************************************************************* * Joliet allows max 128 bytes Index: isomaster/bk/bkRead.c =================================================================== --- isomaster.orig/bk/bkRead.c 2014-01-06 16:37:21.231168000 +0000 +++ isomaster/bk/bkRead.c 2014-01-06 16:37:39.593470342 +0000 @@ -36,9 +36,6 @@ #define VDTYPE_VOLUMEPARTITION 3 #define VDTYPE_TERMINATOR 255 -/* for el torito boot images */ -#define NBYTES_VIRTUAL_SECTOR 512 - /* this function is really just for use in readRockridgeSymlink() * returns number of chars appended * destMaxLen doesn't include '\0'

