Imported Debian patch 3.4-9
[debian/elilo] / choosers / textmenu.c
index 9379b0e2034e7691709a609b8dde2635c08a1359..a8067b4b5496b49e344b6369c9f710734416b072 100644 (file)
@@ -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;
                }
        }