Re: [PATCH] wifi: Free g_hash_table_get_values on connect_peer

2014-08-04 Thread Patrik Flykt
On Fri, 2014-08-01 at 06:49 -0400, Eduardo Abinader wrote:
 Glist returned from g_hash_table_get_values was not
 being freed during p2p connect, causing a leak.

Applied, thanks!

Patrik

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


[PATCH] wifi: Free g_hash_table_get_values on connect_peer

2014-08-01 Thread Eduardo Abinader
Glist returned from g_hash_table_get_values was not
being freed during p2p connect, causing a leak.
---
 src/peer.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/peer.c b/src/peer.c
index 7f23059..1d802e1 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -480,7 +480,7 @@ static DBusMessage *connect_peer(DBusConnection *conn,
DBusMessage *msg, void *user_data)
 {
struct connman_peer *peer = user_data;
-   GList *list;
+   GList *list, *start;
int err;
 
DBG(peer %p, peer);
@@ -489,6 +489,7 @@ static DBusMessage *connect_peer(DBusConnection *conn,
return __connman_error_in_progress(msg);
 
list = g_hash_table_get_values(peers_table);
+   start = list;
for (; list; list = list-next) {
struct connman_peer *temp = list-data;
 
@@ -496,11 +497,15 @@ static DBusMessage *connect_peer(DBusConnection *conn,
continue;
 
if (is_connecting(temp) || is_connected(temp)) {
-   if (peer_disconnect(temp) == -EINPROGRESS)
+   if (peer_disconnect(temp) == -EINPROGRESS) {
+   g_list_free(start);
return __connman_error_in_progress(msg);
+   }
}
}
 
+   g_list_free(start);
+
peer-pending = dbus_message_ref(msg);
 
err = peer_connect(peer);
-- 
1.9.1

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: [PATCH] wifi: Free g_hash_table_get_values on connect_peer

2014-08-01 Thread Tomasz Bursztyka

ACK

Thanks Eduardo

Tomasz
___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman