diff --git a/coreapi/friendlist.c b/coreapi/friendlist.c index 8712bd455..878fc14f0 100644 --- a/coreapi/friendlist.c +++ b/coreapi/friendlist.c @@ -800,15 +800,19 @@ LinphoneFriend * linphone_friend_list_find_friend_by_uri(const LinphoneFriendLis return result; } -LinphoneFriend * linphone_friend_list_find_friend_by_ref_key(const LinphoneFriendList *list, const char *ref_key) { - if(list) { - bctbx_iterator_t* it = bctbx_map_cchar_find_key(list->friends_map, ref_key); - if (!bctbx_iterator_cchar_equals(it, bctbx_map_cchar_end(list->friends_map))) { +LinphoneFriend *linphone_friend_list_find_friend_by_ref_key (const LinphoneFriendList *list, const char *ref_key) { + LinphoneFriend *result = NULL; + if (list) { + bctbx_iterator_t *it = bctbx_map_cchar_find_key(list->friends_map, ref_key); + bctbx_iterator_t *end = bctbx_map_cchar_end(list->friends_map); + if (!bctbx_iterator_cchar_equals(it, end)) { bctbx_pair_t *pair = bctbx_iterator_cchar_get_pair(it); - return (LinphoneFriend *)bctbx_pair_cchar_get_second(pair); + result = (LinphoneFriend *)bctbx_pair_cchar_get_second(pair); } + bctbx_iterator_cchar_delete(end); + bctbx_iterator_cchar_delete(it); } - return NULL; + return result; } LinphoneFriend * linphone_friend_list_find_friend_by_inc_subscribe ( diff --git a/tester/vcard_tester.c b/tester/vcard_tester.c index 213c02fa5..84cfcd62f 100644 --- a/tester/vcard_tester.c +++ b/tester/vcard_tester.c @@ -365,7 +365,7 @@ static void friends_sqlite_store_lot_of_friends(void) { int ret; char *buf; char *friends_db = bc_tester_file("friends.db"); - + unlink(friends_db); ret = sqlite3_open(friends_db, &db); bc_free(friends_db); @@ -437,7 +437,7 @@ static void friends_sqlite_find_friend_in_lot_of_friends(void) { bctoolboxTimeSpec t1; bctoolboxTimeSpec t2; char *friends_db = bc_tester_file("friends.db"); - + unlink(friends_db); ret = sqlite3_open(friends_db, &db); bc_free(friends_db); @@ -951,7 +951,9 @@ static void find_friend_by_ref_key_test(void) { goto end; } addr = linphone_friend_get_address(lf2); - BC_ASSERT_STRING_EQUAL(linphone_address_as_string_uri_only(addr), "sip:toto@sip.linphone.org"); + char *uri_addr = linphone_address_as_string_uri_only(addr); + BC_ASSERT_STRING_EQUAL(uri_addr, "sip:toto@sip.linphone.org"); + bctbx_free(uri_addr); BC_ASSERT_EQUAL(lf2, lf, void*, "%p"); end: linphone_friend_unref(lf);