From 14623de497794581948d8df3e69d22833588da43 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 5 Mar 2020 16:21:47 +0100
Subject: [PATCH 194/220] efi/http: Export {fw,http}_path variables to make
 them global

The fw_path environment variable is used by http_configure() function to
determine the HTTP path that should be used as prefix when using relative
HTTP paths. And this is stored in the http_path environment variable.

Later, that variable is looked up by grub_efihttp_open() to generate the
complete path to be used in the HTTP request.

But these variables are not exported, which means that are not global and
so are only found in the initial context.

This can cause commands like configfile that create a new context to fail
because the fw_path and http_path variables will not be found.

Resolves: rhbz#1616395

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
 grub-core/kern/main.c    | 1 +
 grub-core/net/efi/http.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
index dcf4872..9bf6a8b 100644
--- a/grub-core/kern/main.c
+++ b/grub-core/kern/main.c
@@ -142,6 +142,7 @@ grub_set_prefix_and_root (void)
       if (fw_path)
 	{
 	  grub_env_set ("fw_path", fw_path);
+	  grub_env_export ("fw_path");
 	  grub_dprintf ("fw_path", "fw_path:\"%s\"\n", fw_path);
 	  grub_free (fw_path);
 	}
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index de351b2..755b7a6 100644
--- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c
@@ -39,6 +39,7 @@ http_configure (struct grub_efi_net_device *dev, int prefer_ip6)
 	  http_path++;
 	  grub_env_unset ("http_path");
 	  grub_env_set ("http_path", http_path);
+	  grub_env_export ("http_path");
 	}
     }
 
-- 
1.8.3.1

