diff options
-rw-r--r-- | discover/grub2/env.c | 4 | ||||
-rw-r--r-- | test/parser/test-grub2-save-env.c | 6 |
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) |