olsrd-quagga: Fix memory leak when adding and deleting routes
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Fri, 15 Feb 2013 13:18:31 +0000 (15:18 +0200)
committerSaverio Proto <zioproto@gmail.com>
Mon, 25 Feb 2013 11:13:14 +0000 (12:13 +0100)
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;
 }