diff options
author | Matt Fleming <matt.fleming@intel.com> | 2012-05-03 13:54:14 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2012-05-03 14:52:17 +0100 |
commit | 51bb012b6da85fc4c473b997c4516d29a20a7756 (patch) | |
tree | c6490627abfb5f8f09408654216163d25d40ee11 | |
parent | b6f8015f2335da9ce400b84787ca5721bf1bf867 (diff) | |
download | syslinux-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>
-rw-r--r-- | com32/elflink/ldlinux/ldlinux.c | 6 | ||||
-rw-r--r-- | com32/elflink/ldlinux/readconfig.c | 2 |
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)); |