SHA256
1
0
forked from pool/elilo
elilo/elilo-longer-commandline.diff

109 lines
3.3 KiB
Diff

References: 242702
Increase command line size to 2048 chars.
---
choosers/simple.c | 10 +++++-----
choosers/textmenu.c | 6 +++---
config.c | 6 +++---
elilo.c | 2 +-
elilo.h | 3 ++-
5 files changed, 14 insertions(+), 13 deletions(-)
--- a/choosers/simple.c
+++ b/choosers/simple.c
@@ -36,8 +36,8 @@ static VOID
display_label_info(CHAR16 *name)
{
CHAR16 *desc;
- CHAR16 initrd_name[CMDLINE_MAXLEN];
- CHAR16 vmcode_name[CMDLINE_MAXLEN];
+ CHAR16 initrd_name[PATHNAME_MAXLEN];
+ CHAR16 vmcode_name[PATHNAME_MAXLEN];
CHAR16 options_tmp[CMDLINE_MAXLEN];
CHAR16 options[CMDLINE_MAXLEN];
CHAR16 kname[FILENAME_MAXLEN];
@@ -248,10 +248,10 @@ simple_choose(CHAR16 **argv, INTN argc,
# define BOOT_IMG_STR L"BOOT_IMAGE="
CHAR16 buffer[CMDLINE_MAXLEN];
CHAR16 alt_buffer[CMDLINE_MAXLEN];
- CHAR16 initrd_name[CMDLINE_MAXLEN];
- CHAR16 vmcode_name[CMDLINE_MAXLEN];
+ CHAR16 initrd_name[PATHNAME_MAXLEN];
+ CHAR16 vmcode_name[PATHNAME_MAXLEN];
CHAR16 args[CMDLINE_MAXLEN];
- CHAR16 devname[CMDLINE_MAXLEN];
+ CHAR16 devname[PATHNAME_MAXLEN];
CHAR16 dpath[FILENAME_MAXLEN];
CHAR16 *slash_pos, *colon_pos, *backslash_pos;
UINTN len;
--- a/choosers/textmenu.c
+++ b/choosers/textmenu.c
@@ -362,10 +362,10 @@ textmenu_choose(CHAR16 **argv, INTN argc
{
# define BOOT_IMG_STR L"BOOT_IMAGE="
CHAR16 label[CMDLINE_MAXLEN];
- CHAR16 initrd_name[CMDLINE_MAXLEN];
- CHAR16 vmcode_name[CMDLINE_MAXLEN];
+ CHAR16 initrd_name[PATHNAME_MAXLEN];
+ CHAR16 vmcode_name[PATHNAME_MAXLEN];
CHAR16 args[CMDLINE_MAXLEN];
- CHAR16 devname[CMDLINE_MAXLEN];
+ CHAR16 devname[PATHNAME_MAXLEN];
CHAR16 dpath[FILENAME_MAXLEN];
CHAR16 *slash_pos, *colon_pos, *backslash_pos;
UINTN len;
--- a/config.c
+++ b/config.c
@@ -51,7 +51,7 @@
*/
#define ELILO_DEFAULT_CONFIG L"elilo.conf"
-#define MAX_STRING CMDLINE_MAXLEN
+#define MAX_STRING 512
#define CONFIG_BUFSIZE 512 /* input buffer size */
/*
@@ -66,7 +66,7 @@ typedef struct boot_image {
struct boot_image *next;
CHAR16 label[MAX_STRING];
CHAR16 kname[FILENAME_MAXLEN];
- CHAR16 options[MAX_STRING];
+ CHAR16 options[CMDLINE_MAXLEN];
CHAR16 initrd[FILENAME_MAXLEN];
CHAR16 vmcode[FILENAME_MAXLEN];
CHAR16 root[FILENAME_MAXLEN];
@@ -95,7 +95,7 @@ typedef struct {
CHAR16 root[FILENAME_MAXLEN]; /* globally defined root fs */
CHAR16 initrd[FILENAME_MAXLEN];/* globally defined initrd */
CHAR16 vmcode[FILENAME_MAXLEN];/* globally defined boot-time module */
- CHAR16 options[MAX_STRING];
+ CHAR16 options[CMDLINE_MAXLEN];
CHAR16 default_image_name[MAX_STRING];
CHAR16 message_file[MAX_MESSAGES][FILENAME_MAXLEN];
CHAR16 chooser[FILENAME_MAXLEN];/* which image chooser to use */
--- a/elilo.c
+++ b/elilo.c
@@ -87,7 +87,7 @@ do_kernel_load(CHAR16 *kname, kdesc_t *k
INTN
kernel_load(EFI_HANDLE image, CHAR16 *kname, kdesc_t *kd, memdesc_t *imem, memdesc_t *mmem)
{
- CHAR16 kernel[CMDLINE_MAXLEN];
+ CHAR16 kernel[FILENAME_MAXLEN];
/*
* Do the vm image switch here
--- a/elilo.h
+++ b/elilo.h
@@ -57,7 +57,8 @@
#define ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY
#define ELILO_TIMEOUT_INFINITY (~0UL)
-#define CMDLINE_MAXLEN 512 /* needed by ia32 */
+#define CMDLINE_MAXLEN 2048
+#define PATHNAME_MAXLEN 512
#define FILENAME_MAXLEN 256
#define MAX_ARGS 256
/* Just pick an arbitrary number that's high enough for now :o) */