diff options
author | James Meyer <james.meyer@operamail.com> | 2014-02-17 00:07:17 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2014-02-19 19:03:05 (GMT) |
commit | f3feb9104cf0d194d6d1c3e0adbb49130aef37bd (patch) | |
tree | b8e74a04943dd18f6d88e083bd4979f1413bbf94 /abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch | |
parent | 6b9c9d0e6335e536d3bbd990e780a710275c22de (diff) | |
download | linhes_pkgbuild-f3feb9104cf0d194d6d1c3e0adbb49130aef37bd.zip linhes_pkgbuild-f3feb9104cf0d194d6d1c3e0adbb49130aef37bd.tar.gz linhes_pkgbuild-f3feb9104cf0d194d6d1c3e0adbb49130aef37bd.tar.bz2 |
syslinux: 6.0.2
update binary path to /usr/bin
refs #961
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, 47 insertions, 0 deletions
diff --git a/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch b/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch new file mode 100644 index 0000000..6fd7ef4 --- /dev/null +++ b/abs/extra/syslinux/syslinux-6.02-fix-chainloading.patch @@ -0,0 +1,47 @@ +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; |