]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix a segfault when finding a route without an interface.
authorRoy Marples <roy@marples.name>
Sun, 12 Apr 2015 08:57:13 +0000 (08:57 +0000)
committerRoy Marples <roy@marples.name>
Sun, 12 Apr 2015 08:57:13 +0000 (08:57 +0000)
Thanks to Paul Walrath.

ipv4.c

diff --git a/ipv4.c b/ipv4.c
index 17d226690cd5de9d24b6a2f335e1da86910ec296..2e43f0286ae0a444d4d881fda5e65b686e59700d 100644 (file)
--- a/ipv4.c
+++ b/ipv4.c
@@ -252,8 +252,8 @@ find_route(struct rt_head *rts, const struct rt *r, const struct rt *srt)
        TAILQ_FOREACH(rt, rts, next) {
                if (rt->dest.s_addr == r->dest.s_addr &&
 #ifdef HAVE_ROUTE_METRIC
-                   (srt || (!rt->iface ||
-                       rt->iface->metric == r->iface->metric)) &&
+                   (srt || (r->iface == NULL || rt->iface == NULL ||
+                   rt->iface->metric == r->iface->metric)) &&
 #endif
                     (!srt || srt != rt) &&
                    rt->net.s_addr == r->net.s_addr)