olsrd-quagga: Fix memory leak when adding and deleting routes
[olsrd.git] / lib / quagga / src / quagga.c
index 394581c..62fdbe9 100644 (file)
@@ -2,7 +2,7 @@
  * OLSRd Quagga plugin
  *
  * Copyright (C) 2006-2008 Immo 'FaUl' Wehrenberg <immo@chaostreff-dortmund.de>
- * Copyright (C) 2007-2012 Vasilis Tsiligiannis <acinonyxs@yahoo.gr>
+ * Copyright (C) 2007-2013 Vasilis Tsiligiannis <acinonyxs@yahoo.gr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -100,6 +100,9 @@ zebra_addroute(const struct rt_entry *r)
 
   retval = zclient_write(zpacket_route(olsr_cnf->ip_version == AF_INET ? ZEBRA_IPV4_ROUTE_ADD : ZEBRA_IPV6_ROUTE_ADD, &route));
 
+  free(route.ifindex);
+  free(route.nexthop);
+
   return retval;
 }
 
@@ -150,6 +153,9 @@ zebra_delroute(const struct rt_entry *r)
 
   retval = zclient_write(zpacket_route(olsr_cnf->ip_version == AF_INET ? ZEBRA_IPV4_ROUTE_DELETE : ZEBRA_IPV6_ROUTE_DELETE, &route));
 
+  free(route.ifindex);
+  free(route.nexthop);
+
   return retval;
 }