summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--discover/grub2/env.c4
-rw-r--r--test/parser/test-grub2-save-env.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/discover/grub2/env.c b/discover/grub2/env.c
index 3598927..7eda095 100644
--- a/discover/grub2/env.c
+++ b/discover/grub2/env.c
@@ -257,6 +257,10 @@ int builtin_save_env(struct grub2_script *script,
name = argv[i];
value = script_env_get(script, name);
+ if (!value) {
+ pb_log("Saved unset environment variable %s!\n", name);
+ value = "";
+ }
update_env(buf + siglen, len - siglen, name, value);
}
diff --git a/test/parser/test-grub2-save-env.c b/test/parser/test-grub2-save-env.c
index 68e91bd..36725e2 100644
--- a/test/parser/test-grub2-save-env.c
+++ b/test/parser/test-grub2-save-env.c
@@ -74,6 +74,12 @@ struct env_test {
"a=xxx\nsave_env a\n",
"q=q\na=x\nr=r\n#",
},
+ {
+ "unset-var",
+ "##############",
+ "save_env an_unset_var\n",
+ "an_unset_var=\n"
+ }
};
static void run_env_test(struct parser_test *test, struct env_test *envtest)
OpenPOWER on IntegriCloud