Add d_bus receive permission. 32/123832/3
authorSeokHoon Lee <andy.shlee@samsung.com>
Fri, 7 Apr 2017 07:11:09 +0000 (16:11 +0900)
committerSeokHoon Lee <andy.shlee@samsung.com>
Fri, 7 Apr 2017 08:50:53 +0000 (17:50 +0900)
- 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 <andy.shlee@samsung.com>
Change-Id: I3d8b8c07455b94b24163703550b1a857bca98018

packaging/capi-media-screen-mirroring.spec
packaging/org.tizen.scmirroring.server.conf
src/scmirroring_sink.c
src/scmirroring_src.c
test/scmirroring_test.c [changed mode: 0755->0644]

index f759019dc52bb46bb8310277ca4a718276ef06f3..3d5cdb72079441ba89eae882e4fd372b57413a3d 100644 (file)
@@ -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
index e86f467fd85c3b8dd022d7e88425f92da1e55ef5..439bfe08c6597a0b1d2dceb58d3dfa91718add7b 100644 (file)
@@ -6,6 +6,11 @@
                <allow send_destination="org.tizen.scmirroring.server"/>
                <allow receive_sender="org.tizen.scmirroring.server"/>
        </policy>
+       <policy user="multimedia_fw">
+               <allow own="org.tizen.scmirroring.server"/>
+               <allow send_destination="org.tizen.scmirroring.server"/>
+               <allow receive_sender="org.tizen.scmirroring.server"/>
+       </policy>
        <policy at_console="true">
                <allow send_destination="org.tizen.scmirroring.server"/>
                <allow receive_sender="org.tizen.scmirroring.server"/>
index 2cde6efdb80b80a06a111350067d1e59d5846f5b..f56c138d19fbe9e87c699adea409e3483412593f 100644 (file)
@@ -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;
index 3f5ed4d1d54d44ac7635cd0a587fc6c59a2a7050..9681f4c45ea13b504be0aab4c5d45de09dad99ab 100644 (file)
@@ -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);
        }
 
old mode 100755 (executable)
new mode 100644 (file)
index 39af904..a3f24c5
@@ -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");