From: Alan Dunn Date: Wed, 2 Mar 2016 16:59:04 +0000 (-0800) Subject: discover/grub2: Do not set $0 in functions X-Git-Tag: v1.0.1~1 X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=c5cbcf4b6a2ee7dafba8d29d52071752f3022ebb discover/grub2: Do not set $0 in functions GRUB2 does not set $0 in functions, so don't set it in our GRUB2 script parser. (As it doesn't have a value in GRUB2 scripts, probably no GRUB2 script depends on the value of $0.) Additionally, dash and bash set environment variable 0 to the name of the script (even in functions), so the current behavior of $0 doesn't really match shell scripts either. Tested: Existing tests pass. Signed-off-by: Alan Dunn Signed-off-by: Samuel Mendoza-Jonas --- diff --git a/discover/grub2/script.c b/discover/grub2/script.c index 48c963e..ed81a20 100644 --- a/discover/grub2/script.c +++ b/discover/grub2/script.c @@ -379,7 +379,7 @@ static int function_invoke(struct grub2_script *script, int i; /* set positional parameters */ - for (i = 0; i < argc; i++) { + for (i = 1; i < argc; i++) { name = talloc_asprintf(script, "%d", i); script_env_set(script, name, argv[i]); }