diff options
| author | Cidorvan Leite <cidorvan.leite@openbossa.org> | 2008-03-13 22:18:33 +0000 | 
|---|---|---|
| committer | Cidorvan Leite <cidorvan.leite@openbossa.org> | 2008-03-13 22:18:33 +0000 | 
| commit | cd78bb42ed0538e99b45bfbd2153a581595119ec (patch) | |
| tree | b957a7f6275113cfabc9dce8b1075066621ca269 /hcid/adapter.c | |
| parent | ff296428a08dee619db1cc702146faefa91087fa (diff) | |
Fixed memory leak when removing uuid duplicated
Diffstat (limited to 'hcid/adapter.c')
| -rw-r--r-- | hcid/adapter.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/hcid/adapter.c b/hcid/adapter.c index 608355f3..d46527d0 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -3360,10 +3360,14 @@ static void discover_services_cb(gpointer user_data, sdp_list_t *recs, int err)  		if (sdp_get_service_classes(rec, &svcclass) == 0) {  			/* Extract the first element and skip the remainning */  			gchar *uuid_str = bt_uuid2string(svcclass->data); -			if (uuid_str && !g_slist_find_custom(uuids, uuid_str, +			if (uuid_str) { +				if (!g_slist_find_custom(uuids, uuid_str,  							(GCompareFunc) strcmp)) -				uuids = g_slist_insert_sorted(uuids, uuid_str, -							(GCompareFunc) strcmp); +					uuids = g_slist_insert_sorted(uuids, +						uuid_str, (GCompareFunc) strcmp); +				else +					g_free(uuid_str); +			}  			sdp_list_free(svcclass, free);  		} | 
