From e4457f2f681f66963c8ee1c37f689aa33d964d6f Mon Sep 17 00:00:00 2001 From: Jan-Philipp Litza Date: Fri, 9 Dec 2016 20:13:35 +0100 Subject: [PATCH] gluon-radv-filterd: Fix use-after-free when best router expires --- package/gluon-radv-filterd/src/gluon-radv-filterd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/gluon-radv-filterd/src/gluon-radv-filterd.c b/package/gluon-radv-filterd/src/gluon-radv-filterd.c index 8b702f57..3e089529 100644 --- a/package/gluon-radv-filterd/src/gluon-radv-filterd.c +++ b/package/gluon-radv-filterd/src/gluon-radv-filterd.c @@ -312,6 +312,8 @@ static void expire_routers() { if (router->eol < now) { DEBUG_MSG("router " F_MAC " expired", F_MAC_VAR(router->src)); *prev_ptr = router->next; + if (G.best_router == router) + G.best_router = NULL; free(router); } else { prev_ptr = &router->next;