Skip to content

Commit

Permalink
vroute-netlink: pull missing leak fix from vroute
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus Friedl authored and tobhe committed Jan 19, 2024
1 parent d4fef09 commit 727ace8
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions iked/vroute-netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,12 +328,13 @@ void
vroute_removeroute(struct iked *env, struct sockaddr *dest)
{
struct iked_vroute_sc *ivr = env->sc_vroute;
struct vroute_route *route;
struct vroute_route *route, *troute;

TAILQ_FOREACH(route, &ivr->ivr_routes, vr_entry) {
TAILQ_FOREACH_SAFE(route, &ivr->ivr_routes, vr_entry, troute) {
if (sockaddr_cmp(dest, (struct sockaddr *)&route->vr_dest, -1))
continue;
TAILQ_REMOVE(&ivr->ivr_routes, route, vr_entry);
free(route);
}
}

Expand Down Expand Up @@ -393,16 +394,17 @@ vroute_removeaddr(struct iked *env, int ifidx, struct sockaddr *addr,
struct sockaddr *mask)
{
struct iked_vroute_sc *ivr = env->sc_vroute;
struct vroute_addr *vaddr;
struct vroute_addr *vaddr, *tvaddr;

TAILQ_FOREACH(vaddr, &ivr->ivr_addrs, va_entry) {
TAILQ_FOREACH_SAFE(vaddr, &ivr->ivr_addrs, va_entry, tvaddr) {
if (sockaddr_cmp(addr, (struct sockaddr *)&vaddr->va_addr, -1))
continue;
if (sockaddr_cmp(mask, (struct sockaddr *)&vaddr->va_mask, -1))
continue;
if (ifidx != vaddr->va_ifidx)
continue;
TAILQ_REMOVE(&ivr->ivr_addrs, vaddr, va_entry);
free(vaddr);
}
}

Expand Down

0 comments on commit 727ace8

Please sign in to comment.