File elilo-longer-commandline.diff of Package elilo

From: Bernhard Walle <bwalle@suse.de>
Subject: Increase command line size to 2048 chars.
References: bnc#242702

Signed-off-by: Bernhard Walle <bwalle@suse.de>

---
 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
@@ -41,8 +41,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];
@@ -254,10 +254,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
@@ -363,10 +363,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
@@ -56,7 +56,7 @@
  */
 #define ELILO_DEFAULT_CONFIG	L"elilo.conf"
 
-#define MAX_STRING	CMDLINE_MAXLEN
+#define MAX_STRING	512
 #define CONFIG_BUFSIZE	512	/* input buffer size */
 
 /*
@@ -71,7 +71,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];
@@ -100,7 +100,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
@@ -93,7 +93,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
@@ -69,7 +69,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) */
openSUSE Build Service is sponsored by