@@ -0,0 +1,38 @@
|
|||||||
|
From 0a2dbb3392ee710838bea6bda80d4daad6b54780 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scot Doyle <lkml14@scotdoyle.com>
|
||||||
|
Date: Sat, 18 Apr 2015 07:11:07 -0400
|
||||||
|
Subject: [PATCH] com32/lib/syslinux/load_linux.c: update prot_mode_base
|
||||||
|
|
||||||
|
If the kernel is relocatable and the protected mode code will not fit
|
||||||
|
in the initially determined location, that code will be moved to the
|
||||||
|
next available location. However, beginning with commit 8f470e7b, the
|
||||||
|
code is moved to the initially determined location instead of the next
|
||||||
|
available location because prot_mode_base is no longer updated to the
|
||||||
|
correct location. Since whdr->code32_start is updated, it is pointing
|
||||||
|
to the wrong execution start location, random code is executed and
|
||||||
|
the machine is rebooted.
|
||||||
|
|
||||||
|
Restore the old behavior by assigning prot_mode_base the value of
|
||||||
|
base. Tested on a machine that exposed this behavior.
|
||||||
|
|
||||||
|
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
|
||||||
|
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
||||||
|
---
|
||||||
|
com32/lib/syslinux/load_linux.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
|
||||||
|
index ac73729..fc7f04f 100644
|
||||||
|
--- a/com32/lib/syslinux/load_linux.c
|
||||||
|
+++ b/com32/lib/syslinux/load_linux.c
|
||||||
|
@@ -323,6 +323,7 @@ int bios_boot_linux(void *kernel_buf, size_t kernel_size,
|
||||||
|
}
|
||||||
|
|
||||||
|
whdr->code32_start += base - prot_mode_base;
|
||||||
|
+ prot_mode_base = base;
|
||||||
|
|
||||||
|
/* Real mode code */
|
||||||
|
if (syslinux_memmap_find(amap, &real_mode_base,
|
||||||
|
--
|
||||||
|
2.7.4.GIT
|
||||||
|
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
From 138e850fab106b5235178848b3e0d33e25f4d3a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olivier Brunel <jjk@jjacky.com>
|
||||||
|
Date: Wed, 2 Mar 2016 17:52:23 -0500
|
||||||
|
Subject: [PATCH] keytab-lilo: update to support kbd 2.0.3 format
|
||||||
|
|
||||||
|
Since kbd 2.0.3 (commit 6ff47cf2) the format generated by 'loadkeys -m' has
|
||||||
|
changed slightly, using "unsigned short" instead of "u_short"
|
||||||
|
|
||||||
|
Signed-off-by: Olivier Brunel <jjk@jjacky.com>
|
||||||
|
---
|
||||||
|
utils/keytab-lilo | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/utils/keytab-lilo b/utils/keytab-lilo
|
||||||
|
index 9e34160..337a869 100755
|
||||||
|
--- a/utils/keytab-lilo
|
||||||
|
+++ b/utils/keytab-lilo
|
||||||
|
@@ -48,9 +48,9 @@ sub load_map
|
||||||
|
$empty = 1;
|
||||||
|
while (<FILE>) {
|
||||||
|
chop;
|
||||||
|
- if (/^(static\s+)?u_short\s+(\S+)_map\[\S*\]\s+=\s+{\s*$/) {
|
||||||
|
+ if (/^(static\s+)?(u_|unsigned )short\s+(\S+)_map\[\S*\]\s+=\s+{\s*$/) {
|
||||||
|
die "active at beginning of map" if defined $current;
|
||||||
|
- $current = $pfx.":".$2;
|
||||||
|
+ $current = $pfx.":".$3;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
undef $current if /^};\s*$/;
|
||||||
|
--
|
||||||
|
2.7.4.GIT
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
From 83aad4f69065509ba5b1c080edccfed316a4cff0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scot Doyle <lkml14@scotdoyle.com>
|
||||||
|
Date: Sat, 7 Feb 2015 13:52:05 -0500
|
||||||
|
Subject: [PATCH] load_linux: correct a type
|
||||||
|
|
||||||
|
Correct base's type to match its initialization from prot_mode_base and
|
||||||
|
passage to syslinux_memmap_find(). Tested with extlinux.
|
||||||
|
|
||||||
|
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
|
||||||
|
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
||||||
|
---
|
||||||
|
com32/lib/syslinux/load_linux.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
|
||||||
|
index 06ae2a9..ac73729 100644
|
||||||
|
--- a/com32/lib/syslinux/load_linux.c
|
||||||
|
+++ b/com32/lib/syslinux/load_linux.c
|
||||||
|
@@ -155,8 +155,8 @@ int bios_boot_linux(void *kernel_buf, size_t kernel_size,
|
||||||
|
char *cmdline)
|
||||||
|
{
|
||||||
|
struct linux_header hdr, *whdr;
|
||||||
|
- size_t real_mode_size, prot_mode_size, base;
|
||||||
|
- addr_t real_mode_base, prot_mode_base, prot_mode_max;
|
||||||
|
+ size_t real_mode_size, prot_mode_size;
|
||||||
|
+ addr_t real_mode_base, prot_mode_base, prot_mode_max, base;
|
||||||
|
addr_t irf_size;
|
||||||
|
size_t cmdline_size, cmdline_offset;
|
||||||
|
struct setup_data *sdp;
|
||||||
|
--
|
||||||
|
2.7.4.GIT
|
||||||
|
|
||||||
@@ -16,16 +16,23 @@
|
|||||||
<BuildDependencies>
|
<BuildDependencies>
|
||||||
<Dependency>nasm</Dependency>
|
<Dependency>nasm</Dependency>
|
||||||
<Dependency>asciidoc</Dependency>
|
<Dependency>asciidoc</Dependency>
|
||||||
|
<Dependency>dosfstools</Dependency>
|
||||||
|
<Dependency>mtools</Dependency>
|
||||||
<Dependency>efibootmgr-devel</Dependency>
|
<Dependency>efibootmgr-devel</Dependency>
|
||||||
|
<Dependency>gptfdisk</Dependency>
|
||||||
<Dependency>upx</Dependency><!--1-->
|
<Dependency>upx</Dependency><!--1-->
|
||||||
<Dependency>libutil-linux-devel</Dependency>
|
<Dependency>libutil-linux-devel</Dependency>
|
||||||
|
<Dependency>util-linux</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<Patch level="1">0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch</Patch>
|
<!--Patch level="1">0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch</Patch>
|
||||||
<Patch level="1">0035-SYSAPPEND-Fix-space-stripping.patch</Patch>
|
<Patch level="1">0035-SYSAPPEND-Fix-space-stripping.patch</Patch-->
|
||||||
<Patch level="1">gcc-fix-alignment.patch</Patch>
|
<Patch level="1">gcc-fix-alignment.patch</Patch>
|
||||||
<Patch level="1">dont-guess-alignment.patch</Patch>
|
<Patch level="1">dont-guess-alignment.patch</Patch>
|
||||||
<Patch level="1">btrfs-fix.patch</Patch>
|
<Patch level="1">btrfs-fix.patch</Patch>
|
||||||
|
<Patch>syslinux.git-138e850fab106b5235178848b3e0d33e25f4d3a2.patch</Patch><!--kbd patch-->
|
||||||
|
<Patch>syslinux.git-83aad4f.patch</Patch><!--set-base patch-->
|
||||||
|
<Patch>syslinux.git-0a2dbb3.patch</Patch><!--set-mod patch-->
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user