[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 14/16] normal/main: Try mac/guid/etc before grub.cfg on tftp c
From: |
Leo Sandoval |
Subject: |
[PATCH v3 14/16] normal/main: Try mac/guid/etc before grub.cfg on tftp config files. |
Date: |
Thu, 10 Oct 2024 15:43:32 -0600 |
From: Peter Jones <pjones@redhat.com>
Signed-off-by: Peter Jones <pjones@redhat.com>
---
grub-core/normal/main.c | 93 ++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 44 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index fd8be685a..973e7d733 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -339,61 +339,66 @@ grub_cmd_normal (struct grub_command *cmd __attribute__
((unused)),
/* Guess the config filename. It is necessary to make CONFIG static,
so that it won't get broken by longjmp. */
char *config;
- const char *prefix, *fw_path;
-
- prefix = fw_path = grub_env_get ("fw_path");
- if (fw_path)
- {
- config = grub_xasprintf ("%s/grub.cfg", fw_path);
- if (config)
- {
- grub_file_t file;
-
- file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
- if (file)
- {
- grub_file_close (file);
- grub_enter_normal_mode (config);
- }
- else
- {
- /* Ignore all errors. */
- grub_errno = 0;
- }
- grub_free (config);
- }
- }
+ const char *prefix;
+ const char *net_search_cfg;
+ int disable_net_search = 0;
+ prefix = grub_env_get ("fw_path");
if (! prefix)
prefix = grub_env_get ("prefix");
+
+ net_search_cfg = grub_env_get ("feature_net_search_cfg");
+ if (net_search_cfg && net_search_cfg[0] == 'n')
+ disable_net_search = 1;
+
if (prefix)
{
- grub_size_t config_len;
- int disable_net_search = 0;
- const char *net_search_cfg;
-
- config_len = grub_strlen (prefix) +
- sizeof
("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
- config = grub_malloc (config_len);
+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 &&
+ !disable_net_search)
+ {
+ grub_size_t config_len;
+ config_len = grub_strlen (prefix) +
+ sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
+ config = grub_malloc (config_len);
- if (!config)
- goto quit;
+ if (! config)
+ goto quit;
- grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
- net_search_cfg = grub_env_get ("feature_net_search_cfg");
- if (net_search_cfg && net_search_cfg[0] == 'n')
- disable_net_search = 1;
+ grub_net_search_configfile (config);
- if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 &&
- !disable_net_search)
- grub_net_search_config_file (config);
+ grub_enter_normal_mode (config);
+ grub_free (config);
+ config = NULL;
+ }
- grub_enter_normal_mode (config);
- grub_free (config);
- }
+ if (!config)
+ {
+ config = grub_xasprintf ("%s/grub.cfg", prefix);
+ if (config)
+ {
+ grub_file_t file;
+
+ file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
+ if (file)
+ {
+ grub_file_close (file);
+ grub_enter_normal_mode (config);
+ }
+ else
+ {
+ /* Ignore all errors. */
+ grub_errno = 0;
+ }
+ grub_free (config);
+ }
+ }
+ }
else
- grub_enter_normal_mode (0);
+ {
+ grub_enter_normal_mode (0);
+ }
}
else
grub_enter_normal_mode (argv[0]);
--
2.46.2
- [PATCH v3 10/16] 10_linux.in: Add devicetree loading, (continued)
- [PATCH v3 10/16] 10_linux.in: Add devicetree loading, Leo Sandoval, 2024/10/10
- [PATCH v3 09/16] commands: Pass "\x[[:hex:]][[:hex:]]" straight through unmolested., Leo Sandoval, 2024/10/10
- [PATCH v3 11/16] Makefile.common: Add .eh_frame to list of relocations stripped, Leo Sandoval, 2024/10/10
- [PATCH v3 08/16] normal: Add fw_path variable (revised), Leo Sandoval, 2024/10/10
- [PATCH v3 12/16] 10_linux.in: Don't require a password to boot entries generated by grub-mkconfig., Leo Sandoval, 2024/10/10
- [PATCH v3 13/16] normal/main: fw_path prefix when fallback searching for grub config, Leo Sandoval, 2024/10/10
- [PATCH v3 15/16] 10_linux.in: Generate OS and CLASS in 10_linux from /etc/os-release, Leo Sandoval, 2024/10/10
- [PATCH v3 16/16] normal/main: Try $prefix if $fw_path doesn't work., Leo Sandoval, 2024/10/10
- [PATCH v3 14/16] normal/main: Try mac/guid/etc before grub.cfg on tftp config files.,
Leo Sandoval <=
- [PATCH v3 07/16] 20_ppc_terminfo.in: Migrate ieee1275/PPC from Yaboot to Grub2, Leo Sandoval, 2024/10/10
- Re: [PATCH v3 00/16] First Distro-agnostic series taken from Fedora Rawhide, Daniel Kiper, 2024/10/30