[FIX] manager update after tizen 2.2
authorVitaliy Cherepanov <v.cherepanov@samsung.com>
Wed, 4 Sep 2013 13:24:50 +0000 (17:24 +0400)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Thu, 5 Sep 2013 12:03:40 +0000 (12:03 +0000)
- fix prevent violation (commit c8594519fe420b787dadcda0d1767f29569e66ec)

Change-Id: If064e7f790308237a755a192717ac74b9031e047
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
daemon/daemon.c
daemon/main.c
daemon/sys_stat.c
daemon/threads.c
daemon/utils.c

index fafda285d1f415ac9d6df18aec7216f783b52039..9aec54055607cdc90450e7ebb1d05c63f366977e 100644 (file)
@@ -88,6 +88,7 @@ static int _file_read(FILE* fp, char *buffer, int size)
        if(fp != NULL && size > 0)
        {
                ret = fread((void*)buffer, sizeof(char), size, fp);
+               buffer[ret] = '\0';
        }
        else
        {
@@ -135,7 +136,14 @@ static int get_input_id(char* inputname)
 
        // run command
        cmd_fp = popen(command, "r");
-       _file_read(cmd_fp, buffer, BUF_SIZE);
+       if(_file_read(cmd_fp, buffer, BUF_SIZE) < 0)
+       {
+               LOGE("Failed to read input_id\n");
+               if(cmd_fp != NULL)
+                       pclose(cmd_fp);
+               return ret;
+       }
+
 
        // determine input id
        if(strstr(buffer, INPUT_ID_STR_KEY))                    // key
@@ -402,7 +410,12 @@ int start_profiling()
 
        // remove previous screen capture files
        remove_indir(SCREENSHOT_DIR);
-       mkdir(SCREENSHOT_DIR, 0777);
+       if(mkdir(SCREENSHOT_DIR, 0777) < 0)
+       {
+               LOGE("Failed to create directory for screenshot : errno(%d)\n", errno);
+       }
+
+
 #ifndef LOCALTEST
        smack_lsetlabel(SCREENSHOT_DIR, "*", SMACK_LABEL_ACCESS);
 #endif
index 211be81cefccbb026d8708f0d384c207384f1073..4b69b27e91e701a4acbda62eeba25f21306dee04 100644 (file)
@@ -170,7 +170,11 @@ static int makeTargetServerSocket()
                return -1;
        }
 
-       chmod(serverAddrUn.sun_path, 0777);
+       if(chmod(serverAddrUn.sun_path, 0777) < 0)
+       {
+               LOGE("Failed to change mode for socket file : errno(%d)\n", errno);
+       }
+
 
        if (-1 == listen(manager.target_server_socket, 5))
        {
@@ -199,7 +203,12 @@ static int makeHostServerSocket()
                return -1;
        }
 
-       setsockopt(manager.host_server_socket, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+       if(setsockopt(manager.host_server_socket,
+          SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
+       {
+               LOGE("Failed to set socket option : errno(%d)\n", errno);
+       }
+
        memset(&serverAddrIn, 0, sizeof(serverAddrIn));
        serverAddrIn.sin_family = AF_INET;
        serverAddrIn.sin_addr.s_addr = htonl(INADDR_ANY);
index 837bfc9a4017b3ac2a64276c6107461f2a49a5ff..df2e24786a0ab27bbb962c86af3092837dc582a0 100644 (file)
@@ -839,7 +839,9 @@ static int parse_proc_stat_file_bypid(char *path, proc_t* P)
        if(unlikely(num <= 0)){
                LOGE("nothing read from '%s'\n", filename);
                return -1;
-       }
+       } else if(num == BUFFER_MAX)
+               num -= 1;
+
 
        buf[num] = '\0';
 
@@ -1274,6 +1276,10 @@ static int update_system_memory_data(uint64_t *memtotal, uint64_t *memused)
                LOGE("Failed to read from " PROCMEMINFO "\n");
                return -1;
        }
+
+       if(num == BUFFER_MAX)
+               num -= 1;
+
        buf[num] = '\0';
 //     LOGI("buffer=<%s>\n", buf);
 
@@ -1349,6 +1355,9 @@ unsigned long get_system_total_memory()
                LOGE("Failed to read from " PROCMEMINFO "\n");
                return 0;
        }
+
+       if(num == BUFFER_MAX)
+               num -= 1;
        buf[num] = '\0';
 
        head = buf;
index 7d1f398f4cc3d3b603ccfdf0b663ac6ff2fa4a2f..3163ee695722345f9e652d7752b5f48e05a9974e 100644 (file)
@@ -99,7 +99,7 @@ static void* recvThread(void* data)
                {
                        recvLen = recv(manager.target[index].socket,
                                                        log.data, log.length, MSG_WAITALL);
-                       if(unlikely(recvLen != log.length))     // consume as disconnect
+                       if(unlikely((recvLen == -1) || (recvLen != log.length)))        // consume as disconnect
                        {
                                event = EVENT_STOP;
                                write(manager.target[index].event_fd, &event, sizeof(uint64_t));
index 107458a7308eb48da58027597bdd9cd4f489379a..75dbccd8ad7fd07ebe9995181a48cf750a016415 100644 (file)
@@ -588,7 +588,7 @@ int get_app_install_path(char *strAppInstall, int length)
                //find
                if (*p != ':')
                        break;
-               for (; i < BUFFER_MAX; i++)
+               for (; i < BUFFER_MAX - 1; i++)
                {
                        if (*p == ':' || *p == ' ' || *p == '\t')
                                p++;