summaryrefslogtreecommitdiffstats
path: root/discover/grub2
diff options
context:
space:
mode:
authorAlan Dunn <amdunn@google.com>2016-03-02 08:59:03 -0800
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2016-04-26 12:56:36 +1000
commit013bf20025957f1b812f0c6e50f8d7afa215e1a3 (patch)
treeb8b6285f1c9eb703f03e0734833156e2b3a4f890 /discover/grub2
parent9f0f86150e9bf14760e155768dcb7df682257327 (diff)
downloadtalos-petitboot-013bf20025957f1b812f0c6e50f8d7afa215e1a3.tar.gz
talos-petitboot-013bf20025957f1b812f0c6e50f8d7afa215e1a3.zip
Allow evaluation of arbitrarily-positioned arguments in GRUB2 parser
GRUB2 allows essentially arbitrary numbers of positional arguments, so ensure that they can be evaluated within scripts. GRUB2 also appears to support arbitrary numbers of leading 0's in positional parameters (i.e., $01 should evalute the same as $1), but this doesn't seem like a particularly important case to support. Tested: Modified test-grub2-pos-param to cover higher-numbered positional arguments. Signed-off-by: Alan Dunn <amdunn@google.com> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/grub2')
-rw-r--r--discover/grub2/grub2-lexer.l3
1 files changed, 2 insertions, 1 deletions
diff --git a/discover/grub2/grub2-lexer.l b/discover/grub2/grub2-lexer.l
index 81dc5fe..b55a715 100644
--- a/discover/grub2/grub2-lexer.l
+++ b/discover/grub2/grub2-lexer.l
@@ -24,7 +24,8 @@ void yyerror(struct grub2_parser *parser, const char *fmt, ...);
WORD [^{}|&$;<> \t\n'"#]+
DELIM [ \t]+
BLANK ["]{2}|[']{2}
-VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#])
+NUMBER 0|[1-9][0-9]*
+VARNAME ([[:alpha:]][_[:alnum:]]*|{NUMBER}|[\?@\*#])
%%
OpenPOWER on IntegriCloud