[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/2] net/net: Delete Routes for Deleted Interfaces
From: |
Andrew Hamilton |
Subject: |
[PATCH v2 2/2] net/net: Delete Routes for Deleted Interfaces |
Date: |
Sat, 31 Aug 2024 22:31:08 -0500 |
Signed-off-by: Andrew Hamilton <adhamilt@gmail.com>
---
grub-core/net/net.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 8cad4fb6d..51e0dd312 100644
--- a/grub-core/net/net.c
+++ b/grub-core/net/net.c
@@ -718,6 +718,23 @@ grub_cmd_deladdr (struct grub_command *cmd __attribute__
((unused)),
return grub_error (GRUB_ERR_IO,
N_("you can't delete this address"));
+ struct grub_net_route *route;
+ struct grub_net_route **prev;
+
+ /* Remove any existing routes using this interface. */
+ for (prev = &grub_net_routes, route = *prev; route;
+ prev = &((*prev)->next), route = *prev)
+ {
+ if (grub_strcmp (route->interface->name, inter->name) == 0)
+ {
+ *prev = route->next;
+ grub_free (route->name);
+ grub_free (route);
+ if (*prev == NULL)
+ break;
+ }
+ }
+
grub_net_network_level_interface_unregister (inter);
grub_free (inter->name);
grub_free (inter);
--
2.39.2