From b2b1410a69c874e132ed84bcbdf11cc40e98ee2b Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 13 Mar 2015 15:17:53 +0100 Subject: [PATCH] fix multiple memory leaks --- coreapi/bellesip_sal/sal_op_message.c | 13 +++-- coreapi/chat.c | 7 +-- coreapi/linphonecore.c | 15 ++++-- coreapi/linphonecore.h | 3 +- coreapi/private.h | 1 - tester/ZIDCache.xml | 2 +- tester/ZIDCacheAlice.xml | 2 +- tester/ZIDCacheBob.xml | 2 +- tester/message_tester.c | 71 +++++++++++---------------- 9 files changed, 57 insertions(+), 59 deletions(-) diff --git a/coreapi/bellesip_sal/sal_op_message.c b/coreapi/bellesip_sal/sal_op_message.c index 7423fbe76..d9643640e 100644 --- a/coreapi/bellesip_sal/sal_op_message.c +++ b/coreapi/bellesip_sal/sal_op_message.c @@ -97,6 +97,7 @@ void sal_process_incoming_message(SalOp *op,const belle_sip_request_event_t *eve belle_sip_header_from_t* from_header; belle_sip_header_content_type_t* content_type; belle_sip_response_t* resp; + int errcode=500; belle_sip_header_call_id_t* call_id = belle_sip_message_get_header_by_type(req,belle_sip_header_call_id_t); belle_sip_header_cseq_t* cseq = belle_sip_message_get_header_by_type(req,belle_sip_header_cseq_t); belle_sip_header_date_t *date=belle_sip_message_get_header_by_type(req,belle_sip_header_date_t); @@ -116,6 +117,7 @@ void sal_process_incoming_message(SalOp *op,const belle_sip_request_event_t *eve FILE *CACHEFD = fopen(lc->zrtp_secrets_cache, "rb+"); if (CACHEFD == NULL) { ms_warning("Unable to access ZRTP ZID cache to decrypt message"); + goto error; } else { size_t cacheSize; char *cacheString; @@ -125,7 +127,7 @@ void sal_process_incoming_message(SalOp *op,const belle_sip_request_event_t *eve cacheString=ms_load_file_content(CACHEFD, &cacheSize); if (!cacheString){ ms_warning("Unable to load content of ZRTP ZID cache to decrypt message"); - return; + goto error; } cacheString[cacheSize] = '\0'; cacheSize += 1; @@ -137,9 +139,8 @@ void sal_process_incoming_message(SalOp *op,const belle_sip_request_event_t *eve ms_warning("Unable to decrypt message, reason : %s - op [%p]", lime_error_code_to_string(retval), op); free(decryptedMessage); xmlFreeDoc(cacheXml); - resp = belle_sip_response_create_from_request(req,488); - belle_sip_server_transaction_send_response(server_transaction,resp); - return; + errcode = 488; + goto error; } else { /* dump updated cache to a string */ xmlChar *xmlStringOutput; @@ -221,6 +222,10 @@ void sal_process_incoming_message(SalOp *op,const belle_sip_request_event_t *eve belle_sip_server_transaction_send_response(server_transaction,resp); return; } + return; +error: + resp = belle_sip_response_create_from_request(req, errcode); + belle_sip_server_transaction_send_response(server_transaction,resp); } static void process_request_event(void *op_base, const belle_sip_request_event_t *event) { diff --git a/coreapi/chat.c b/coreapi/chat.c index 37cafbde6..476c365d5 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -322,7 +322,7 @@ static void linphone_chat_message_process_response_from_post_file(void *data, co belle_sip_body_handler_t *first_part_bh; /* shall we encrypt the file */ - if (msg->chat_room->lc->lime == 1) { + if (linphone_core_lime_enabled(msg->chat_room->lc)) { char keyBuffer[FILE_TRANSFER_KEY_SIZE]; /* temporary storage of generated key: 192 bits of key + 64 bits of initial vector */ /* generate a random 192 bits key + 64 bits of initial vector and store it into the file_transfer_information->key field of the message */ sal_get_random_bytes((unsigned char *)keyBuffer, FILE_TRANSFER_KEY_SIZE); @@ -738,7 +738,7 @@ static void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatM sal_message_send(op,identity,cr->peer,content_type, NULL, NULL); ms_free(content_type); } else { - if (cr->lc->lime == 1) { /* shall we try to encrypt messages? */ + if (linphone_core_lime_enabled(cr->lc)) { /* shall we try to encrypt messages? */ linphone_chat_message_ref(msg); /* ref the message or it may be destroyed by callback if the encryption failed */ if ((msg->content_type != NULL) && (strcmp(msg->content_type, "application/vnd.gsma.rcs-ft-http+xml") == 0 )) { /* it's a file transfer, content type shall be set to application/cipher.vnd.gsma.rcs-ft-http+xml*/ sal_message_send(op, identity, cr->peer, "application/cipher.vnd.gsma.rcs-ft-http+xml", msg->message, linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr))); @@ -1466,12 +1466,13 @@ void linphone_chat_message_download_file(LinphoneChatMessage *message) { belle_http_request_listener_t *l; belle_generic_uri_t *uri; const char *url=message->external_body_url; - char* ua = ms_strdup_printf("%s/%s", linphone_core_get_user_agent_name(), linphone_core_get_user_agent_version()); + char* ua; if (url == NULL) { ms_error("Cannot download file from chat message [%p] because url is NULL",message); return; } + ua = ms_strdup_printf("%s/%s", linphone_core_get_user_agent_name(), linphone_core_get_user_agent_version()); uri=belle_generic_uri_parse(url); message->http_request=belle_http_request_create("GET", diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 26a7fca88..455be98f5 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -904,8 +904,8 @@ static void sip_config_read(LinphoneCore *lc) tmp=lp_config_get_int(lc->config,"sip","guess_hostname",1); linphone_core_set_guess_hostname(lc,tmp); - tmp=lp_config_get_int(lc->config,"sip","lime",0); - linphone_core_set_lime(lc,tmp); + tmp=lp_config_get_int(lc->config,"sip","lime",FALSE); + linphone_core_enable_lime(lc,tmp); tmp=lp_config_get_int(lc->config,"sip","inc_timeout",30); linphone_core_set_inc_timeout(lc,tmp); @@ -1833,9 +1833,14 @@ bool_t linphone_core_get_guess_hostname(LinphoneCore *lc){ * Tells to LinphoneCore to use Linphone Instant Messaging encryption * */ -void linphone_core_set_lime(LinphoneCore *lc, bool_t val){ - lc->lime=val; - lp_config_set_int(lc->config,"sip","lime",val); +void linphone_core_enable_lime(LinphoneCore *lc, bool_t val){ + if (linphone_core_ready(lc)){ + lp_config_set_int(lc->config,"sip","lime",val); + } +} + +bool_t linphone_core_lime_enabled(const LinphoneCore *lc){ + return lp_config_get_int(lc->config,"sip", "lime", FALSE); } /** diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index b9afb2a1a..8f6f79df6 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -2249,7 +2249,8 @@ LINPHONE_PUBLIC const char * linphone_core_get_identity(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_set_guess_hostname(LinphoneCore *lc, bool_t val); LINPHONE_PUBLIC bool_t linphone_core_get_guess_hostname(LinphoneCore *lc); -LINPHONE_PUBLIC void linphone_core_set_lime(LinphoneCore *lc, bool_t val); +LINPHONE_PUBLIC void linphone_core_enable_lime(LinphoneCore *lc, bool_t val); +LINPHONE_PUBLIC bool_t linphone_core_lime_enabled(const LinphoneCore *lc); LINPHONE_PUBLIC bool_t linphone_core_ipv6_enabled(LinphoneCore *lc); LINPHONE_PUBLIC void linphone_core_enable_ipv6(LinphoneCore *lc, bool_t val); diff --git a/coreapi/private.h b/coreapi/private.h index 796eb750f..27ad33d52 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -801,7 +801,6 @@ struct _LinphoneCore belle_tls_verify_policy_t *http_verify_policy; MSList *tones; LinphoneReason chat_deny_code; - bool_t lime; char *file_transfer_server; const char **supported_formats; LinphoneContent *log_collection_upload_information; diff --git a/tester/ZIDCache.xml b/tester/ZIDCache.xml index d5bc40a8b..6c96b40cc 100644 --- a/tester/ZIDCache.xml +++ b/tester/ZIDCache.xml @@ -1,2 +1,2 @@ -ef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com963c57bb28e62068d2df23e8f9b771932d3c57bb28e62068d2df23e8f9b77193ffd9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b771935f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193fcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000069000001e2011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com123456789012345678901234567890123456765431262068d2df23e8f9b7719325d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b77193000000010000000001 +ef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com963c57bb28e62068d2df23e8f9b771932d3c57bb28e62068d2df23e8f9b7719305d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b771935f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719302ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000069000001e8011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899pipo1@pipo.com123456789012345678901234567890123456765431262068d2df23e8f9b7719325d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b77193000000010000000001 diff --git a/tester/ZIDCacheAlice.xml b/tester/ZIDCacheAlice.xml index d0b2be2fb..0edd84bd9 100644 --- a/tester/ZIDCacheAlice.xml +++ b/tester/ZIDCacheAlice.xml @@ -1,2 +1,2 @@ -ef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.orgeeee4fe260a61bb2ab85740cce180f66096c29167b4b10806ff42c964b1884a260f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000007a000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000 +ef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:pauline@sip.example.org72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000 diff --git a/tester/ZIDCacheBob.xml b/tester/ZIDCacheBob.xml index 07b62aaaa..3795074a2 100644 --- a/tester/ZIDCacheBob.xml +++ b/tester/ZIDCacheBob.xml @@ -1,4 +1,4 @@ 005dbe0399643d953a2202dd - ef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.orgeeee4fe260a61bb2ab85740cce180f66096c29167b4b10806ff42c964b1884a260f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000007a000001cf01 + ef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org9111ebeb52e50edcc6fcb3eea1a2d3ae3c2c75d3668923e83c59d0f47245515060f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000080000001cf01 1234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899sip:marie@sip.example.org81e6e6362c34dc974263d1f77cbb9a8d6d6a718330994379099a8fa19fb12faa25d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000002e0000000001 diff --git a/tester/message_tester.c b/tester/message_tester.c index 0a9fd26bd..00cfa4c0b 100644 --- a/tester/message_tester.c +++ b/tester/message_tester.c @@ -158,7 +158,9 @@ void liblinphone_tester_chat_message_msg_state_changed(LinphoneChatMessage *msg, LinphoneChatRoom *cr = linphone_chat_message_get_chat_room(msg); LinphoneCore *lc = linphone_chat_room_get_core(cr); stats* counters = get_stats(lc); - ms_message("Message [%s] [%s]",linphone_chat_message_get_text(msg), linphone_chat_message_state_to_string(state)); + const char *text = linphone_chat_message_get_text(msg); + if (!text) text = ""; + ms_message("Message [%s] [%s]",text, linphone_chat_message_state_to_string(state)); switch (state) { case LinphoneChatMessageStateDelivered: counters->number_of_LinphoneMessageDelivered++; @@ -373,7 +375,7 @@ static void text_message_with_ack(void) { CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageReceived,1)); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneMessageDelivered,1)); CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageInProgress,1); - + ms_free(to); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } @@ -417,6 +419,7 @@ static void text_message_with_external_body(void) { linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); + ms_free(to); } bool_t compare_files(const char *path1, const char *path2) { @@ -425,30 +428,10 @@ bool_t compare_files(const char *path1, const char *path2) { size_t size2; uint8_t *buf1; uint8_t *buf2; - FILE *f1 = fopen(path1, "rb"); - FILE *f2 = fopen(path2, "rb"); - fseek(f1, 0, SEEK_END); - size1 = ftell(f1); - fseek(f1, 0, SEEK_SET); - fseek(f2, 0, SEEK_END); - size2 = ftell(f2); - fseek(f2, 0, SEEK_SET); - if (size1 != size2) { - fclose(f1); - fclose(f2); - return FALSE; - } - buf1 = ms_malloc(size1); - buf2 = ms_malloc(size2); - if (fread(buf1, size1, 1, f1)!=size1){ - ms_error("fread() error"); - } - if (fread(buf2, size2, 1, f2)!=size2){ - ms_error("fread() error"); - } - fclose(f1); - fclose(f2); - res = (memcmp(buf1, buf2, size1) == 0) ? TRUE : FALSE; + + buf1 = (uint8_t*)ms_load_path_content(path1, &size1); + buf2 = (uint8_t*)ms_load_path_content(path2, &size2); + res = buf1 && buf2 && (size1 == size2) && (memcmp(buf1, buf2, size1) == 0); ms_free(buf1); ms_free(buf2); return res; @@ -594,6 +577,7 @@ static void lime_file_transfer_message(void) { LinphoneContent *content; LinphoneChatMessage *message; LinphoneChatMessageCbs *cbs; + char *pauline_id, *marie_id; /* setting dummy file content to something */ const char* big_file_content="big file"; @@ -609,16 +593,20 @@ static void lime_file_transfer_message(void) { reset_counters(&pauline->stat); /* make sure lime is enabled */ - linphone_core_set_lime(marie->lc, 1); - linphone_core_set_lime(pauline->lc, 1); + linphone_core_enable_lime(marie->lc, 1); + linphone_core_enable_lime(pauline->lc, 1); /* set the zid caches files : create two ZID cache from this valid one inserting the auto-generated sip URI for the peer account as keys in ZID cache are indexed by peer sip uri */ - ZIDCacheMarieFD = fopen("tmpZIDCacheMarie.xml", "w"); - ZIDCachePaulineFD = fopen("tmpZIDCachePauline.xml", "w"); - fprintf(ZIDCacheMarieFD, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s08df5907d30959b8cb70f6fff2d8febd88fb41b0c8afc39e4b972f86dd5cfe2d60f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000078000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000", linphone_address_as_string_uri_only(pauline->identity), linphone_address_as_string_uri_only(pauline->identity)); - fprintf(ZIDCachePaulineFD, "\n005dbe0399643d953a2202ddef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s08df5907d30959b8cb70f6fff2d8febd88fb41b0c8afc39e4b972f86dd5cfe2d60f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000078000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s81e6e6362c34dc974263d1f77cbb9a8d6d6a718330994379099a8fa19fb12faa25d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000002e0000000001", linphone_address_as_string_uri_only(marie->identity), linphone_address_as_string_uri_only(marie->identity)); + ZIDCacheMarieFD = fopen("tmpZIDCacheMarie.xml", "wb"); + ZIDCachePaulineFD = fopen("tmpZIDCachePauline.xml", "wb"); + pauline_id = linphone_address_as_string_uri_only(pauline->identity); + marie_id = linphone_address_as_string_uri_only(marie->identity); + fprintf(ZIDCacheMarieFD, "\nef7692d0792a67491ae2d44e005dbe0399643d953a2202dd9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s08df5907d30959b8cb70f6fff2d8febd88fb41b0c8afc39e4b972f86dd5cfe2d60f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000078000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s72d80ab1cad243cf45634980c1d02cfb2df81ce0dd5dfcf1ebeacfc5345a917625d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000000f00000000", pauline_id, pauline_id); + fprintf(ZIDCachePaulineFD, "\n005dbe0399643d953a2202ddef7692d0792a67491ae2d44e9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s08df5907d30959b8cb70f6fff2d8febd88fb41b0c8afc39e4b972f86dd5cfe2d60f020a3fe11dc2cc0e1e8ed9341b4cd14944db806ca4fc95456bbe45d95c43a5f9aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b77193bcffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b7719300000078000001cf011234567889643d953a2202ee9b5c8f06f3b6c2c695f2dfc3c26f31f5fef8661f8c5fe7c95aeb5c5b0435b045f8324dd18ea905171ec2be89f879d01d5994132048d92ea020778cbdf31c605e2fdcef69380937c2cf221f7d11526f286c39f49641452ba9012521c705094899%s81e6e6362c34dc974263d1f77cbb9a8d6d6a718330994379099a8fa19fb12faa25d9ac653a83c4559cb0ae7394e7cd3b2d3c57bb28e62068d2df23e8f9b77193f69aa1e5e4c7ec88fa389a9f6b8879b42d3c57bb28e62068d2df23e8f9b7719322ffd51e7316a6c6f53a50fcf01b01bf2d3c57bb28e62068d2df23e8f9b771930000002e0000000001", marie_id, marie_id); fclose(ZIDCacheMarieFD); fclose(ZIDCachePaulineFD); + ms_free(marie_id); + ms_free(pauline_id); linphone_core_set_zrtp_secrets_file(marie->lc, "tmpZIDCacheMarie.xml"); linphone_core_set_zrtp_secrets_file(pauline->lc, "tmpZIDCachePauline.xml"); @@ -761,6 +749,7 @@ static void file_transfer_message_io_error_download(void) { /* create a chatroom on pauline's side */ to = linphone_address_as_string(marie->identity); chat_room = linphone_core_create_chat_room(pauline->lc,to); + ms_free(to); /* create a file transfer message */ memset(&content,0,sizeof(content)); @@ -938,8 +927,8 @@ static void file_transfer_using_external_body_url(void) { reset_counters(&pauline->stat); /* make sure lime is disabled */ - linphone_core_set_lime(marie->lc, 0); - linphone_core_set_lime(pauline->lc, 0); + linphone_core_enable_lime(marie->lc, FALSE); + linphone_core_enable_lime(pauline->lc, FALSE); /* create a chatroom on pauline's side */ to = linphone_address_as_string(marie->identity); @@ -958,10 +947,8 @@ static void file_transfer_using_external_body_url(void) { linphone_chat_message_download_file(marie->stat.last_received_chat_message); } CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &marie->stat.number_of_LinphoneMessageExtBodyReceived, 1)); - - CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageInProgress, 1); - CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneMessageExtBodyReceived, 1); - + CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &pauline->stat.number_of_LinphoneMessageInProgress, 1)); + ms_free(to); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } @@ -1001,6 +988,7 @@ static void text_message_with_send_error(void) { CU_ASSERT_EQUAL(ms_list_size(chat_room->transient_messages), 0); sal_set_send_error(marie->lc->sal, 0); + ms_free(to); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } @@ -1027,7 +1015,7 @@ static void text_message_denied(void) { CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageNotDelivered,1)); CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageReceived,0); - + ms_free(to); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } @@ -1132,7 +1120,6 @@ static void is_composing_notification(void) { linphone_chat_room_send_message(chat_room, "Composing a message"); CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &marie->stat.number_of_LinphoneIsComposingActiveReceived, 1)); CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &marie->stat.number_of_LinphoneIsComposingIdleReceived, 2)); - linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } @@ -1301,8 +1288,8 @@ static void lime_text_message(void) { LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); /* make sure lime is enabled */ - linphone_core_set_lime(marie->lc, 1); - linphone_core_set_lime(pauline->lc, 1); + linphone_core_enable_lime(marie->lc, 1); + linphone_core_enable_lime(pauline->lc, 1); /* set the zid caches files : create two ZID cache from this valid one inserting the auto-generated sip URI for the peer account as keys in ZID cache are indexed by peer sip uri */ ZIDCacheMarieFD = fopen("tmpZIDCacheMarie.xml", "w");