From daab1372185ead237c61cf92ecc76514acd58fd9 Mon Sep 17 00:00:00 2001 From: Omar Vega Ramos Date: Tue, 4 Sep 2018 11:47:31 -0500 Subject: libre-testing/syslinux-6.03-11.parabola1: rebuild --- .../syslinux/syslinux-6.02-fix-chainloading.patch | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 libre-testing/syslinux/syslinux-6.02-fix-chainloading.patch (limited to 'libre-testing/syslinux/syslinux-6.02-fix-chainloading.patch') diff --git a/libre-testing/syslinux/syslinux-6.02-fix-chainloading.patch b/libre-testing/syslinux/syslinux-6.02-fix-chainloading.patch new file mode 100644 index 000000000..6fd7ef4a8 --- /dev/null +++ b/libre-testing/syslinux/syslinux-6.02-fix-chainloading.patch @@ -0,0 +1,47 @@ +Reported-by: Dark Raven +Signed-off-by: Raphael S. Carvalho +--- + 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; -- cgit v1.2.3