From: SeokHoon Lee Date: Fri, 7 Apr 2017 07:11:09 +0000 (+0900) Subject: Add d_bus receive permission. X-Git-Tag: submit/tizen/20170411.063046~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ffa8ff2f89527cf4bb7144b40522d1a1897f327c;p=platform%2Fcore%2Fapi%2Fscreen-mirroring.git Add d_bus receive permission. - Add receive permissino to user/system for miracast d_bus call. - Change Error type for malloc error. - Add parameter check routine in set_multisink_ability api. - Fix memory leak for sock_path and server_name. Signed-off-by: SeokHoon Lee Change-Id: I3d8b8c07455b94b24163703550b1a857bca98018 --- diff --git a/packaging/capi-media-screen-mirroring.spec b/packaging/capi-media-screen-mirroring.spec index f759019..3d5cdb7 100644 --- a/packaging/capi-media-screen-mirroring.spec +++ b/packaging/capi-media-screen-mirroring.spec @@ -1,6 +1,6 @@ Name: capi-media-screen-mirroring Summary: A screen mirroring library in Tizen C API -Version: 0.1.68 +Version: 0.1.69 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/packaging/org.tizen.scmirroring.server.conf b/packaging/org.tizen.scmirroring.server.conf index e86f467..439bfe0 100644 --- a/packaging/org.tizen.scmirroring.server.conf +++ b/packaging/org.tizen.scmirroring.server.conf @@ -6,6 +6,11 @@ + + + + + diff --git a/src/scmirroring_sink.c b/src/scmirroring_sink.c index 2cde6ef..f56c138 100644 --- a/src/scmirroring_sink.c +++ b/src/scmirroring_sink.c @@ -110,7 +110,7 @@ int scmirroring_sink_create(scmirroring_sink_h *scmirroring_sink) scmirroring_retvm_if(scmirroring_sink == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "scmirroring_sink is NULL"); scmirroring_sink_s *handle = (scmirroring_sink_s *)calloc(1, sizeof(scmirroring_sink_s)); - scmirroring_retvm_if(handle == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "Fail to allocate memory for handle"); + scmirroring_retvm_if(handle == NULL, SCMIRRORING_ERROR_OUT_OF_MEMORY, "Fail to allocate memory for handle"); handle->mm_handle = 0; handle->ip = NULL; diff --git a/src/scmirroring_src.c b/src/scmirroring_src.c index 3f5ed4d..9681f4c 100644 --- a/src/scmirroring_src.c +++ b/src/scmirroring_src.c @@ -595,6 +595,10 @@ int scmirroring_src_set_multisink_ability(scmirroring_src_h scmirroring, scmirro scmirroring_debug_fenter(); scmirroring_retvm_if(_scmirroring == NULL, SCMIRRORING_ERROR_INVALID_PARAMETER, "Handle is NULL"); + if ((multisink < SCMIRRORING_MULTISINK_DISABLE) || (multisink >= SCMIRRORING_MULTISINK_ENABLE)) { + scmirroring_error("INVALID multisink ability : %d", multisink); + return SCMIRRORING_ERROR_INVALID_PARAMETER; + } _scmirroring->multisink = multisink; @@ -649,6 +653,7 @@ int scmirroring_src_connect(scmirroring_src_h scmirroring) _scmirroring->sock = sock; _scmirroring->channel = channel; + SCMIRRORING_SAFE_G_FREE(_scmirroring->sock_path); _scmirroring->sock_path = g_strdup("/tmp/.miracast_ipc_rtspserver"); /* Connecting to the miracast server */ @@ -664,11 +669,11 @@ try: if (retry == 0) { ret = __miracast_server_launch(_scmirroring); if (ret != SCMIRRORING_ERROR_NONE) { + SCMIRRORING_SAFE_G_FREE(_scmirroring->sock_path); scmirroring_error("__miracast_server_launch error : %d", ret); return ret; } retry++; - usleep(10000); goto try; } else { scmirroring_debug("Trying to connect failed"); @@ -683,6 +688,7 @@ try: scmirroring_error("Connect error : %s", buf); close(_scmirroring->sock); _scmirroring->sock = -1; + SCMIRRORING_SAFE_G_FREE(_scmirroring->sock_path); return SCMIRRORING_ERROR_INVALID_OPERATION; } } else { @@ -874,6 +880,7 @@ int scmirroring_src_destroy(scmirroring_src_h scmirroring) SCMIRRORING_SAFE_FREE(_scmirroring->ip); SCMIRRORING_SAFE_FREE(_scmirroring->port); SCMIRRORING_SAFE_FREE(_scmirroring->scmirroring_state_cb); + SCMIRRORING_SAFE_G_FREE(_scmirroring->server_name); SCMIRRORING_SAFE_FREE(_scmirroring); } diff --git a/test/scmirroring_test.c b/test/scmirroring_test.c old mode 100755 new mode 100644 index 39af904..a3f24c5 --- a/test/scmirroring_test.c +++ b/test/scmirroring_test.c @@ -45,7 +45,7 @@ static void __displaymenu(void) g_print("=====================================================================\n"); g_print(" SCMIRRORING Testsuite(press q to quit) \n"); g_print("=====================================================================\n"); - g_print("a : a ip port(ex. a 192.168.49.1 2022)\n"); + g_print("a : set ip & port(ex. a 192.168.49.1 2022)\n"); g_print("c : set resolution(ex. c 0 (0 : 1920x1080_P30, 1 : 1280x720_P30, 2 : 960x540_P30, 3: 640x360_P30)\n"); g_print("f : set connection mode(ex. f 0 (0 : wifi_direct, 1 : Other)\n"); g_print("C : Connect\n");