grub2/0166-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch
Javier Martinez Canillas e1531466e1
Update to grub 2.04
This change updates grub to the 2.04 release. The new release changed how
grub is built, so the bootstrap and bootstrap.conf files have to be added
to the dist-git. Also, the gitignore file changed so it has to be updated.

Since the patches have been forward ported to 2.04, there's no need for a
logic to maintain a patch with the delta between the release and the grub
master branch. So the release-to-master.patch is dropped and no longer is
updated by the do-rebase script.

Also since gnulib isn't part of the grub repository anymore and cloned by
the boostrap tool, a gnulib tarball is included as other source file and
copied before calling the bootstrap tool. That way grub can be built even
in builders that only have access to the sources lookaside cache.

Resolves: rhbz#1727279

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2019-08-15 08:04:53 +02:00

43 lines
1.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Date: Tue, 18 Dec 2018 21:27:45 -0500
Subject: [PATCH] Fix the looking up grub.cfg-XXX while tftp booting.
Currently, grub doesn't look up grub.cfg-UUID, grub.cfg-MAC and grub.cfg-IP
while the boot is from tftp. That is because the uuid size is got by
grub_snprintf(, 0, ,), but the grub_snprintf() always returns 0,
so grub judges there's no available uuid in the client and give up
the looking up grub.cfg-XXX.
This issue can be fixed by changing grub_snprintf(, 0, ,) behaivior
to like as snprintf() from glibc, however, somewhere may expect
such argument as the error, so it's risky.
Let's use sizeof() and grub_strlen() to calculate the uuid size
instead of grub_snprintf().
Resolves: rhbz#1658500
---
grub-core/net/net.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index aa56393e1c4..15073dde1c4 100644
--- a/grub-core/net/net.c
+++ b/grub-core/net/net.c
@@ -1942,11 +1942,9 @@ grub_net_search_configfile (char *config)
char *client_uuid_var;
grub_size_t client_uuid_var_size;
- client_uuid_var_size = grub_snprintf (NULL, 0,
- "net_%s_clientuuid", inf->name);
- if (client_uuid_var_size <= 0)
- continue;
- client_uuid_var_size += 1;
+ client_uuid_var_size = sizeof ("net_") + grub_strlen (inf->name) +
+ sizeof ("_clientuuid") + 1;
+
client_uuid_var = grub_malloc(client_uuid_var_size);
if (!client_uuid_var)
continue;