Christian Prochaska
|
97b978c6c8
|
Fix sector calculation in GRUB's stage2_eltorito
The sector number was not calculated correctly for sector sizes < 2048
bytes. This commit updates the stage2_eltorito binary file, which was
created from CVS GRUB legacy (tag 'release_0_97') after applying Adam
Lackorzynski's 'os.8' patch
(http://os.inf.tu-dresden.de/~adam/grub/0.97/grub-0.97-os.8.diff.gz)
and the following patch:
diff --git a/stage2/asm.S b/stage2/asm.S
--- a/stage2/asm.S
+++ b/stage2/asm.S
@@ -98,7 +98,7 @@
.string VERSION
VARIABLE(config_file)
#ifndef STAGE1_5
- .string "(nd)/tftp/menu.lst"
+ .string "/boot/grub/menu.lst"
#else /* STAGE1_5 */
.long 0xffffffff
.string "/boot/grub/stage2"
diff --git a/stage2/fsys_iso9660.c b/stage2/fsys_iso9660.c
--- a/stage2/fsys_iso9660.c
+++ b/stage2/fsys_iso9660.c
@@ -81,12 +81,12 @@
if (byte_len <= 0)
return 1;
- sector += (byte_offset >> sector_size_lg2);
- byte_offset &= (buf_geom.sector_size - 1);
asm volatile ("shl%L0 %1,%0"
: "=r"(sector)
: "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
"0"(sector));
+ sector += (byte_offset >> sector_size_lg2);
+ byte_offset &= (buf_geom.sector_size - 1);
#if !defined(STAGE1_5)
if (disk_read_hook && debug)
This patch fixes #97.
This patch fixes #98.
|
2012-02-14 16:44:41 +01:00 |
|