diff options
Diffstat (limited to 'abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch')
-rw-r--r-- | abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch b/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch deleted file mode 100644 index 6fd7ef4..0000000 --- a/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch +++ /dev/null @@ -1,47 +0,0 @@ -Reported-by: Dark Raven <drdarkraven at gmail.com> -Signed-off-by: Raphael S. Carvalho <raphael.scarv at gmail.com> ---- - com32/lib/syslinux/disk.c | 22 ++++++++++++++-------- - 1 files changed, 14 insertions(+), 8 deletions(-) - -diff --git a/com32/lib/syslinux/disk.c b/com32/lib/syslinux/disk.c -index 0b0c737..47ecb52 100644 ---- a/com32/lib/syslinux/disk.c -+++ b/com32/lib/syslinux/disk.c -@@ -171,22 +171,28 @@ out: - static void *ebios_setup(const struct disk_info *const diskinfo, com32sys_t *inreg, - uint64_t lba, uint8_t count, uint8_t op_code) - { -- static __lowmem struct disk_ebios_dapa dapa; -+ static struct disk_ebios_dapa *dapa = NULL; - void *buf; - -+ if (!dapa) { -+ dapa = lmalloc(sizeof *dapa); -+ if (!dapa) -+ return NULL; -+ } -+ - buf = lmalloc(count * diskinfo->bps); - if (!buf) - return NULL; - -- dapa.len = sizeof(dapa); -- dapa.count = count; -- dapa.off = OFFS(buf); -- dapa.seg = SEG(buf); -- dapa.lba = lba; -+ dapa->len = sizeof(*dapa); -+ dapa->count = count; -+ dapa->off = OFFS(buf); -+ dapa->seg = SEG(buf); -+ dapa->lba = lba; - - inreg->eax.b[1] = op_code; -- inreg->esi.w[0] = OFFS(&dapa); -- inreg->ds = SEG(&dapa); -+ inreg->esi.w[0] = OFFS(dapa); -+ inreg->ds = SEG(dapa); - inreg->edx.b[0] = diskinfo->disk; - - return buf; |