forked from pool/grub2
Marcus Meissner
71b1f4f139
- Fix broken network interface with random address and same name (bsc#1084508) * 0001-ofnet-Initialize-structs-in-bootpath-parser.patch OBS-URL: https://build.opensuse.org/request/show/635497 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=314
37 lines
1.6 KiB
Diff
37 lines
1.6 KiB
Diff
From ddd47864e98cb32a718075bab4462dc56919ec6c Mon Sep 17 00:00:00 2001
|
|
From: Julian Andres Klode <julian.klode@canonical.com>
|
|
Date: Mon, 3 Sep 2018 10:09:15 +0200
|
|
Subject: [PATCH] ofnet: Initialize structs in bootpath parser
|
|
|
|
Code later on checks if variables inside the struct are
|
|
0 to see if they have been set, like if there were addresses
|
|
in the bootpath.
|
|
|
|
The variables were not initialized however, so the check
|
|
might succeed with uninitialized data, and a new interface
|
|
with random addresses and the same name is added. This causes
|
|
$net_default_mac to point to the random one, so, for example,
|
|
using that variable to load per-mac config files fails.
|
|
|
|
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1785859
|
|
Signed-off-by: Julian Andres Klode <julian.klode@canonical.com>
|
|
---
|
|
grub-core/net/drivers/ieee1275/ofnet.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
Index: grub-2.02/grub-core/net/drivers/ieee1275/ofnet.c
|
|
===================================================================
|
|
--- grub-2.02.orig/grub-core/net/drivers/ieee1275/ofnet.c
|
|
+++ grub-2.02/grub-core/net/drivers/ieee1275/ofnet.c
|
|
@@ -153,8 +153,8 @@ grub_ieee1275_parse_bootpath (const char
|
|
char *comma_char = 0;
|
|
char *equal_char = 0;
|
|
grub_size_t field_counter = 0;
|
|
- grub_net_network_level_address_t client_addr, gateway_addr, subnet_mask;
|
|
- grub_net_link_level_address_t hw_addr;
|
|
+ grub_net_network_level_address_t client_addr = {}, gateway_addr = {}, subnet_mask = {};
|
|
+ grub_net_link_level_address_t hw_addr = {};
|
|
grub_net_interface_flags_t flags = 0;
|
|
struct grub_net_network_level_interface *inter = NULL;
|
|
grub_uint32_t vlantag = 0;
|