[aravis] gv_interface: fix memory leak and correctly check for getifaddrs return value.



commit 22932d5dfdb28d13ccb4fb54397349be5db0d33f
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Sun Oct 16 20:45:00 2011 +0200

    gv_interface: fix memory leak and correctly check for getifaddrs return value.

 src/arvgvinterface.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/src/arvgvinterface.c b/src/arvgvinterface.c
index e1607a7..65d1788 100644
--- a/src/arvgvinterface.c
+++ b/src/arvgvinterface.c
@@ -118,12 +118,15 @@ arv_gv_interface_free_discover_infos_list (ArvGvInterface *gv_interface)
 static void
 arv_gv_interface_build_discover_infos_list (ArvGvInterface *gv_interface)
 {
-	struct ifaddrs *ifap;
-	int n_interfaces;
+	struct ifaddrs *ifap  = NULL;
+	int return_value;
 
 	arv_gv_interface_free_discover_infos_list (gv_interface);
 
-	n_interfaces = getifaddrs (&ifap);
+	return_value  = getifaddrs (&ifap);
+	if (return_value < 0)
+		return;
+
 	for (;ifap != NULL; ifap = ifap->ifa_next) {
 		if ((ifap->ifa_flags & IFF_UP) != 0 &&
 		    (ifap->ifa_flags & IFF_POINTOPOINT) == 0 &&
@@ -164,6 +167,8 @@ arv_gv_interface_build_discover_infos_list (ArvGvInterface *gv_interface)
 			gv_interface->priv->n_discover_infos++;
 		}
 	}
+
+	freeifaddrs (ifap);
 }
 
 static gboolean



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]