tizen 2.4 release accepted/tizen_2.4_mobile tizen_2.4 accepted/tizen/2.4/mobile/20151029.034219 submit/tizen_2.4/20151028.063755 tizen_2.4_mobile_release
authorjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 07:28:42 +0000 (16:28 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 07:28:42 +0000 (16:28 +0900)
TC/unit/utc_ApplicationFW_ac_check_launch_privilege_func.c
TC/unit/utc_ApplicationFW_ac_register_launch_privilege_func.c
TC/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func.c
include/ac_sock.h
src/ac_server.c
src/ac_sock.c

index df57741..efde596 100755 (executable)
@@ -68,7 +68,7 @@ static void cleanup(void)
 static void utc_ApplicationFW_ac_check_launch_privilege_func_01(void)
 {
        int r = AC_R_ERROR;
-       r = ac_check_launch_privilege("org.tizen.calculator", "deb",
+       r = ac_check_launch_privilege("com.samsung.calculator", "deb",
                                      getpid());
        if (r < 0) {
                tet_infoline
@@ -103,7 +103,7 @@ static void utc_ApplicationFW_ac_check_launch_privilege_func_02(void)
 static void utc_ApplicationFW_ac_check_launch_privilege_func_03(void)
 {
        int r = AC_R_ERROR;
-       r = ac_check_launch_privilege("org.tizen.calculator", NULL, getpid());
+       r = ac_check_launch_privilege("com.samsung.calculator", NULL, getpid());
        if (r != AC_R_EINVAL) {
                tet_infoline
                    ("ac_check_launch_privilege()"
index 34cfe03..710a8c8 100755 (executable)
@@ -67,7 +67,7 @@ static void cleanup(void)
 static void utc_ApplicationFW_ac_register_launch_privilege_func_01(void)
 {
        int r = AC_R_ERROR;
-       r = ac_register_launch_privilege("org.tizen.calculator", "deb");
+       r = ac_register_launch_privilege("com.samsung.calculator", "deb");
        if (r < 0 && r != AC_R_ENOPULUGINS) {
                tet_infoline
                    ("ac_register_launch_privilege()"
@@ -101,7 +101,7 @@ static void utc_ApplicationFW_ac_register_launch_privilege_func_02(void)
 static void utc_ApplicationFW_ac_register_launch_privilege_func_03(void)
 {
        int r = AC_R_ERROR;
-       r = ac_register_launch_privilege("org.tizen.calculator", NULL);
+       r = ac_register_launch_privilege("com.samsung.calculator", NULL);
        if (r != AC_R_EINVAL) {
                tet_infoline
                    ("ac_register_launch_privilege()"
index 73f8fd8..758e8a3 100755 (executable)
@@ -69,7 +69,7 @@ static void cleanup(void)
 static void utc_ApplicationFW_ac_unregister_launch_privilege_func_01(void)
 {
        int r = AC_R_ERROR;
-       r = ac_unregister_launch_privilege("org.tizen.calculator", "deb");
+       r = ac_unregister_launch_privilege("com.samsung.calculator", "deb");
        if (r < 0 && r != AC_R_ENOPULUGINS) {
                tet_infoline
                    ("ac_unregister_launch_privilege()"
@@ -103,7 +103,7 @@ static void utc_ApplicationFW_ac_unregister_launch_privilege_func_02(void)
 static void utc_ApplicationFW_ac_unregister_launch_privilege_func_03(void)
 {
        int r = AC_R_ERROR;
-       r = ac_unregister_launch_privilege("org.tizen.calculator", NULL);
+       r = ac_unregister_launch_privilege("com.samsung.calculator", NULL);
        if (r != AC_R_EINVAL) {
                tet_infoline
                    ("ac_unregister_launch_privilege()"
index 6866c72..0d1fef6 100755 (executable)
  * limitations under the License.
  *
  */
-\r
-\r
-#ifndef __APP_PKT_T_\r
-#define __APP_PKT_T_\r
-\r
-#include <unistd.h>\r
-#define __USE_GNU\r
-#include <sys/socket.h>\r
-#include <linux/un.h>\r
-\r
-enum ac_cmd {\r
-       AC_CHECK,\r
-       AC_REGISTER,\r
-       AC_UNREGISTER,\r
-};\r
-\r
-#define AC_SOCK_NAME "/tmp/ac-socket"\r
-#define AC_SOCK_MAXBUFF 65535\r
-\r
-typedef struct _ac_pkt_t {\r
-       int cmd;\r
-       int len;\r
-       unsigned char data[1];\r
-} ac_pkt_t;\r
-\r
-int _create_server_sock();\r
-int _create_client_sock();\r
-int _app_send_raw(int cmd, unsigned char *data, int datalen);\r
-ac_pkt_t *_app_recv_raw(int fd, int *clifd, struct ucred *cr);\r
-int _send_result_to_server(int fd, int res);\r
-\r
-\r
-#endif\r
-\r
+
+
+#ifndef __APP_PKT_T_
+#define __APP_PKT_T_
+
+#include <unistd.h>
+#define __USE_GNU
+#include <sys/socket.h>
+#include <linux/un.h>
+
+enum ac_cmd {
+       AC_CHECK,
+       AC_REGISTER,
+       AC_UNREGISTER,
+};
+
+#define AC_SOCK_NAME "/tmp/ac-socket"
+#define AC_SOCK_MAXBUFF 131071
+
+typedef struct _ac_pkt_t {
+       int cmd;
+       int len;
+       unsigned char data[1];
+} ac_pkt_t;
+
+int _create_server_sock();
+int _create_client_sock();
+int _app_send_raw(int cmd, unsigned char *data, int datalen);
+ac_pkt_t *_app_recv_raw(int fd, int *clifd, struct ucred *cr);
+int _send_result_to_server(int fd, int res);
+
+
+#endif
index c88820f..edd9703 100755 (executable)
@@ -164,10 +164,8 @@ static gboolean __ac_handler(gpointer data)
 
        ad = (struct ac_data *)g_base64_decode((const gchar*)pkt->data, (gsize *)&size);
        if (ad == NULL) {
-               _E("out of memory");
-               free(pkt);
-               close(clifd);
-               return FALSE;
+               ret = -1;
+               goto ERROR;
        }
 
        SECURE_LOGD("cmd : %d, pkgname : %s, pkgtype : %s", pkt->cmd, ad->pkg_name, ad->pkg_type);
@@ -176,7 +174,7 @@ static gboolean __ac_handler(gpointer data)
        case AC_CHECK:
                _send_result_to_server(clifd, AC_R_OK);
                ret = __check_launch_privilege(ad->pkg_name, ad->pkg_type, ad->pid);
-               g_free(ad);
+               g_free(ad); 
                free(pkt);
                return TRUE;
                break;
@@ -189,11 +187,15 @@ static gboolean __ac_handler(gpointer data)
        default:
                _E("no support packet");
        }
-
+ERROR:
        _send_result_to_server(clifd, ret);
 
-       g_free(ad);
-       free(pkt);
+       if (ad)
+               g_free(ad);
+
+       if (pkt)
+               free(pkt);
+
        return TRUE;
 }
 
@@ -272,17 +274,19 @@ int __initialize()
        _D("app checker server initialize");
 
        fd = _create_server_sock();
+       if (fd == -1) {
+               _E("_create_server_sock failed.");
+               return AC_R_ERROR;
+       }
 
        src = g_source_new(&funcs, sizeof(GSource));
 
        gpollfd = (GPollFD *) g_malloc(sizeof(GPollFD));
-       if (gpollfd == NULL) {
-               _E("out of memory");
+       if (!gpollfd) {
                g_source_unref(src);
                close(fd);
                return AC_R_ERROR;
        }
-
        gpollfd->events = POLLIN;
        gpollfd->fd = fd;
 
@@ -301,9 +305,11 @@ int __initialize()
        g_source_unref(src);
 
        DIR *dp;
-       struct dirent *dentry;
+       struct dirent dentry;
+       struct dirent *result = NULL;
        DIR *sub_dp = NULL;
-       struct dirent *sub_dentry;
+       struct dirent sub_dentry;
+       struct dirent *sub_result = NULL;
        char buf[MAX_LOCAL_BUFSZ];
        char buf2[MAX_LOCAL_BUFSZ];
        ac_type_list_t *type_t = NULL;
@@ -314,15 +320,15 @@ int __initialize()
        if (dp == NULL) {
                return AC_R_ERROR;
        }
-       while ((dentry = readdir(dp)) != NULL) {
 
-               if(dentry->d_type != DT_DIR)
+       while (readdir_r(dp, &dentry, &result) == 0 && result != NULL) {
+               if(dentry.d_type != DT_DIR)
                        continue;
-               if(strcmp(dentry->d_name,".") == 0 || strcmp(dentry->d_name,"..") == 0) 
+               if(strcmp(dentry.d_name,".") == 0 || strcmp(dentry.d_name,"..") == 0)
                        continue;
 
-               snprintf(buf,MAX_LOCAL_BUFSZ,"%s/%s",PLUGINS_PREFIX,dentry->d_name);
-               SECURE_LOGD("type : %s", dentry->d_name);
+               snprintf(buf,MAX_LOCAL_BUFSZ,"%s/%s", PLUGINS_PREFIX, dentry.d_name);
+               SECURE_LOGD("type : %s", dentry.d_name);
 
                type_t = malloc(sizeof(ac_type_list_t));
                if(type_t == NULL) {
@@ -331,7 +337,7 @@ int __initialize()
                        return AC_R_ERROR;
                }
                memset(type_t, 0, sizeof(ac_type_list_t));
-               type_t->pkg_type = strdup(dentry->d_name);
+               type_t->pkg_type = strdup(dentry.d_name);
                type_t->so_list = NULL;
 
                pkg_type_list = g_slist_append(pkg_type_list, (void *)type_t);
@@ -343,11 +349,10 @@ int __initialize()
                        return AC_R_ERROR;
                }
 
-               while ((sub_dentry = readdir(sub_dp)) != NULL) {
-
-                       if(sub_dentry->d_type == DT_DIR)
+               while (readdir_r(sub_dp, &sub_dentry, &sub_result) == 0 && sub_result != NULL) {
+                       if(sub_dentry.d_type == DT_DIR)
                                continue;
-                       snprintf(buf2,MAX_LOCAL_BUFSZ,"%s/%s", buf, sub_dentry->d_name);
+                       snprintf(buf2,MAX_LOCAL_BUFSZ,"%s/%s", buf, sub_dentry.d_name);
                        SECURE_LOGD("so_name : %s", buf2);
 
                        handle = dlopen(buf2, RTLD_LAZY);
@@ -363,7 +368,7 @@ int __initialize()
                                return AC_R_ERROR;
                        }
                        memset(so_t, 0, sizeof(ac_so_list_t));
-                       so_t->so_name = strdup(sub_dentry->d_name);
+                       so_t->so_name = strdup(sub_dentry.d_name);
                        so_t->ac_check = dlsym(handle, "check_launch_privilege");
                        so_t->ac_register = dlsym(handle, "check_register_privilege");
                        so_t->ac_unregister = dlsym(handle, "check_unregister_privilege");
index c57d8b6..cba8628 100755 (executable)
@@ -27,7 +27,7 @@
 #include <sys/stat.h>
 #include <errno.h>
 #include <fcntl.h>
-
+#include <time.h>
 
 #include "ac_sock.h"
 #include "internal.h"
@@ -84,7 +84,7 @@ int _create_server_sock()
        saddr.sun_family = AF_UNIX;
        snprintf(saddr.sun_path, UNIX_PATH_MAX, "%s",AC_SOCK_NAME);
        unlink(saddr.sun_path);
-       
+
        if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) {
                _E("bind error");
                close(fd);
@@ -104,7 +104,7 @@ int _create_server_sock()
                _E("listen error");
                close(fd);
                return -1;
-       }       
+       }
 
        return fd;
 }
@@ -139,7 +139,12 @@ int _create_client_sock()
        if (ret < -1) {
                _E("maybe peer not launched or peer daed\n");
                if (retry > 0) {
-                       usleep(100 * 1000);
+                       struct timespec time = {
+                               .tv_sec = 0,
+                               .tv_nsec = 1000 * 1000 * 100
+                       };
+
+                       nanosleep(&time, NULL);
                        retry--;
                        goto retry_con;
                }