grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]