From: Daniel Wagner <[email protected]>

When an element is removed from the list, the element will be passed
to destroy_service_entry() which expects only elements of type struct
service_entry.
---
 src/session.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/session.c b/src/session.c
index 99fdf3b..f17e284 100644
--- a/src/session.c
+++ b/src/session.c
@@ -1572,6 +1572,7 @@ static void service_add(struct connman_service *service,
        GSequenceIter *iter_service_list;
        gpointer key, value;
        struct connman_session *session;
+       struct service_entry *entry;
 
        DBG("service %p", service);
 
@@ -1583,9 +1584,14 @@ static void service_add(struct connman_service *service,
                if (service_match(session, service) == FALSE)
                        continue;
 
+               entry = create_service_entry(service, name,
+                                               CONNMAN_SERVICE_STATE_IDLE);
+               if (entry == NULL)
+                       continue;
+
                iter_service_list =
                        g_sequence_insert_sorted(session->service_list,
-                                                       service, sort_services,
+                                                       entry, sort_services,
                                                        session);
 
                g_hash_table_replace(session->service_hash, service,
-- 
1.7.6

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to