# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/10/19 23:46:56+02:00 kaber@coreworks.de # [IPV6]: Fix netdevice/inet6_dev reference leaks in ip6_route_add error paths # # Signed-off-by: Patrick McHardy # # net/ipv6/route.c # 2004/10/19 23:46:17+02:00 kaber@coreworks.de +8 -3 # [IPV6]: Fix netdevice/inet6_dev reference leaks in ip6_route_add error paths # # Signed-off-by: Patrick McHardy # diff -Nru a/net/ipv6/route.c b/net/ipv6/route.c --- a/net/ipv6/route.c 2004-10-19 23:52:23 +02:00 +++ b/net/ipv6/route.c 2004-10-19 23:52:23 +02:00 @@ -798,8 +798,10 @@ rt = ip6_dst_alloc(); - if (rt == NULL) - return -ENOMEM; + if (rt == NULL) { + err = -ENOMEM; + goto out; + } rt->u.dst.obsolete = -1; rt->rt6i_expires = clock_t_to_jiffies(rtmsg->rtmsg_info); @@ -962,7 +964,10 @@ out: if (dev) dev_put(dev); - dst_free((struct dst_entry *) rt); + if (idev) + in6_dev_put(idev); + if (rt) + dst_free((struct dst_entry *) rt); return err; }