From 52a134ca70c8a5acc5c8fd907f0ad631be129102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Wed, 24 Jun 2015 10:25:48 +0200 Subject: [PATCH] Fix crash when passing "http://" as remote provisioning URI --- coreapi/remote_provisioning.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/coreapi/remote_provisioning.c b/coreapi/remote_provisioning.c index c206b5828..40355fa89 100644 --- a/coreapi/remote_provisioning.c +++ b/coreapi/remote_provisioning.c @@ -103,13 +103,14 @@ int linphone_remote_provisioning_download_and_apply(LinphoneCore *lc, const char belle_generic_uri_t *uri=belle_generic_uri_parse(remote_provisioning_uri); const char* scheme = uri ? belle_generic_uri_get_scheme(uri) : NULL; + const char *host = uri ? belle_generic_uri_get_host(uri) : NULL; if( scheme && (strcmp(scheme,"file") == 0) ){ // We allow for 'local remote-provisioning' in case the file is to be opened from the hard drive. const char* file_path = remote_provisioning_uri + strlen("file://"); // skip scheme return linphone_remote_provisioning_load_file(lc, file_path); - } else if( scheme && strncmp(scheme, "http", 4) == 0 ) { + } else if( scheme && strncmp(scheme, "http", 4) == 0 && host && strlen(host) > 0) { belle_http_request_listener_callbacks_t belle_request_listener={0}; belle_http_request_listener_t *listener; belle_http_request_t *request; @@ -124,7 +125,7 @@ int linphone_remote_provisioning_download_and_apply(LinphoneCore *lc, const char request=belle_http_request_create("GET",uri, NULL); return belle_http_provider_send_request(lc->http_provider, request, listener); } else { - ms_error("Invalid provisioning URI [%s] (missing scheme?)",remote_provisioning_uri); + ms_error("Invalid provisioning URI [%s] (missing scheme or host ?)",remote_provisioning_uri); return -1; } }