summaryrefslogtreecommitdiff
path: root/zebra/interface.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2022-03-25 06:55:37 +0100
committerGitHub <noreply@github.com>2022-03-25 06:55:37 +0100
commit619a6623cb6de83f1266beda17842cd1814e5d39 (patch)
tree1e768d4e8239e22cc0f47ffa2ba92ff6161d9838 /zebra/interface.c
parentd51683e6fe32ef70dc8e5119288be29c18f66d73 (diff)
parentd0438da6b09333d2b77a9eac2e9fffbbae6e603b (diff)
Merge pull request #10867 from donaldsharp/ifp_use_after_free
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index 69d611e583..a70326ebb3 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -806,9 +806,10 @@ static void if_delete_connected(struct interface *ifp)
}
/* Handle an interface delete event */
-void if_delete_update(struct interface *ifp)
+void if_delete_update(struct interface **pifp)
{
struct zebra_if *zif;
+ struct interface *ifp = *pifp;
if (if_is_up(ifp)) {
flog_err(
@@ -871,7 +872,7 @@ void if_delete_update(struct interface *ifp)
if (IS_ZEBRA_DEBUG_KERNEL)
zlog_debug("interface %s is being deleted from the system",
ifp->name);
- if_delete(&ifp);
+ if_delete(pifp);
}
}