From 5a7d0a07738aa0c66b753ce46beff45c635fedc7 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 27 Jan 2016 15:20:46 +0100 Subject: [PATCH] Attempt to fix __stack_chk_fail crash on MacOSX --- coreapi/carddav.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/coreapi/carddav.c b/coreapi/carddav.c index 78b70f695..b25969221 100644 --- a/coreapi/carddav.c +++ b/coreapi/carddav.c @@ -494,8 +494,17 @@ void linphone_carddav_put_vcard(LinphoneCardDavContext *cdc, LinphoneFriend *lf) if (!linphone_vcard_get_url(lvc)) { char *url = generate_url_from_server_address_and_uid(cdc->friend_list->uri); - linphone_vcard_set_url(lvc, url); - ms_free(url); + if (url) { + linphone_vcard_set_url(lvc, url); + ms_free(url); + } else { + const char *msg = "vCard doesn't have an URL, and friendlist doesn't have a CardDAV server set either, can't push it"; + ms_warning(msg); + if (cdc && cdc->sync_done_cb) { + cdc->sync_done_cb(cdc, FALSE, msg); + } + return; + } } query = linphone_carddav_create_put_query(cdc, lvc); @@ -505,8 +514,10 @@ void linphone_carddav_put_vcard(LinphoneCardDavContext *cdc, LinphoneFriend *lf) const char *msg = NULL; if (!lvc) { msg = "LinphoneVCard is NULL"; - } else if (!linphone_vcard_get_url(lvc)) { + } else if (!linphone_vcard_get_uid(lvc)) { msg = "LinphoneVCard doesn't have an UID"; + } else { + msg = "Unknown error"; } if (msg) {