X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=choosers%2Ftextmenu.c;h=a8067b4b5496b49e344b6369c9f710734416b072;hb=176953673e992bd3812c32dc5d13eb8fa9b3c5b7;hp=9379b0e2034e7691709a609b8dde2635c08a1359;hpb=054761502f884ae2cb147c75bd17a660fe63b071;p=debian%2Felilo diff --git a/choosers/textmenu.c b/choosers/textmenu.c index 9379b0e..a8067b4 100644 --- a/choosers/textmenu.c +++ b/choosers/textmenu.c @@ -28,7 +28,7 @@ #include "elilo.h" -#define MAX_LABELS 16 +#define MAX_LABELS 64 #define MSGBUFLEN 4096 static UINT8 msgbuf[MSGBUFLEN]; @@ -414,14 +414,14 @@ restart: if (label[0]) ret = find_label(label, kname, args, initrd_name); else - ret = find_label(argv[index], kname, args, initrd_name); + ret = find_label((index < argc) ? argv[index] : NULL, kname, args, initrd_name); /* * not found, so assume first argument is kernel name and * not label name */ if (ret == -1) { - if (argv[index]) + if ((index < argc) && argv[index]) StrCpy(kname, argv[index]); else StrCpy(kname, elilo_opt.default_kernel); @@ -460,6 +460,7 @@ restart: if (ret != 0) { elilo_opt.prompt = 1; elilo_opt.timeout = ELILO_TIMEOUT_INFINITY; + elilo_opt.initrd[0] = CHAR_NULL; goto restart; } }