fix return code in interface_ip_add_target_route
[project/netifd.git] / interface-ip.c
index 14feb6f..6699d2e 100644 (file)
@@ -144,7 +144,7 @@ interface_ip_add_target_route(union if_addr *addr, bool v6)
 
        route = calloc(1, sizeof(*route));
        if (!route)
-               return false;
+               return NULL;
 
        route->flags = v6 ? DEVADDR_INET6 : DEVADDR_INET4;
        route->mask = v6 ? 128 : 32;
@@ -160,8 +160,10 @@ interface_ip_add_target_route(union if_addr *addr, bool v6)
                interface_ip_find_route_target(iface, addr, v6, &r_next);
        }
 
-       if (!r_next)
+       if (!r_next) {
+               free(route);
                return NULL;
+       }
 
        iface = r_next->iface;
        memcpy(&route->nexthop, &r_next->nexthop, sizeof(route->nexthop));