aboutsummaryrefslogtreecommitdiffstats
path: root/com32/elflink
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-05-03 13:54:14 +0100
committerMatt Fleming <matt.fleming@intel.com>2012-05-03 14:52:17 +0100
commit51bb012b6da85fc4c473b997c4516d29a20a7756 (patch)
treec6490627abfb5f8f09408654216163d25d40ee11 /com32/elflink
parentb6f8015f2335da9ce400b84787ca5721bf1bf867 (diff)
downloadsyslinux-51bb012b6da85fc4c473b997c4516d29a20a7756.tar.gz
syslinux-51bb012b6da85fc4c473b997c4516d29a20a7756.tar.xz
syslinux-51bb012b6da85fc4c473b997c4516d29a20a7756.zip
ldlinux: Parse ALLOWOPTIONS directive
Specifying the ALLOWOPTIONS directive doesn't have any effect at the moment. Fix this so that if ALLOWOPTIONS 0 is used then command line arguments are ignored. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/elflink')
-rw-r--r--com32/elflink/ldlinux/ldlinux.c6
-rw-r--r--com32/elflink/ldlinux/readconfig.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/com32/elflink/ldlinux/ldlinux.c b/com32/elflink/ldlinux/ldlinux.c
index c9ec9ac3..f11a65c0 100644
--- a/com32/elflink/ldlinux/ldlinux.c
+++ b/com32/elflink/ldlinux/ldlinux.c
@@ -164,6 +164,12 @@ static void load_kernel(const char *command_line)
if (!allowimplicit)
goto bad_implicit;
+ /* Insert a null character to ignore any user-specified options */
+ if (!allowoptions) {
+ char *p = (char *)find_command(kernel);
+ *p = '\0';
+ }
+
type = parse_kernel_type(kernel);
if (type == KT_KERNEL) {
const char *ext;
diff --git a/com32/elflink/ldlinux/readconfig.c b/com32/elflink/ldlinux/readconfig.c
index 885c81aa..1a8434c3 100644
--- a/com32/elflink/ldlinux/readconfig.c
+++ b/com32/elflink/ldlinux/readconfig.c
@@ -1090,7 +1090,7 @@ do_include:
ontimeout = refstrdup(skipspace(p + 9));
ontimeoutlen = strlen(ontimeout);
} else if (looking_at(p, "allowoptions")) {
- m->allowedit = !!atoi(skipspace(p + 12));
+ allowoptions = !!atoi(skipspace(p + 12));
} else if (looking_at(p, "ipappend")) {
if (ld.label)
ld.ipappend = atoi(skipspace(p + 8));