[FIX] prevent issue 51/31251/1
authorVitaliy Cherepanov <v.cherepanov@samsung.com>
Wed, 3 Dec 2014 08:37:17 +0000 (11:37 +0300)
committerVitaliy Cherepanov <v.cherepanov@samsung.com>
Wed, 3 Dec 2014 08:37:17 +0000 (11:37 +0300)
+-------+-------------------------------+---------------------+--------------+
| ID    | Type                          | file                | function     |
+-------+-------------------------------+---------------------+--------------+
| 98281 | Resource leak                 | helper/damaps.c     | maps_make    |
| 70307 | Calling risky function        | helper/libdaprobe.c | createSocket |
+-------+-------------------------------+---------------------+--------------+

Change-Id: Ia5e8d562a47dc5e2a9ecdafc740b225ef7bb3e75
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
helper/damaps.c
helper/libdaprobe.c

index 4803983..b5b3504 100755 (executable)
@@ -608,14 +608,14 @@ int maps_make()
        if (map != NULL)
                free(map);
 
-       fclose(f);
-
        create_addr_hash_table();
        create_name_hash_table();
 
        update_is_instrument_lib_attr_nolock();
 
 unlock_exit:
+       fclose(f);
+
        maps_reader_unlock_all();
        maps_writer_unlock();
 
index dba51cb..eb0fd91 100755 (executable)
@@ -143,6 +143,7 @@ void application_exit()
 #define MSG_MAPS_INST_LIST_RECV 0x02
 static int createSocket(void)
 {
+       char strerr_buf[MAX_PATH_LENGTH];
        ssize_t recvlen;
        int clientLen, ret = 0;
        struct sockaddr_un clientAddr;
@@ -237,13 +238,14 @@ free_data_buf:
                } else {
                        close(gTraceInfo.socket.daemonSock);
                        gTraceInfo.socket.daemonSock = -1;
+                       strerror_r(errno, strerr_buf, sizeof(strerr_buf));
                        PRINTERR("cannot connect to da_manager. err <%s>\n",
-                                strerror(errno));
+                                strerr_buf);
                        ret = -1;
                }
        } else {
-               PRINTERR("cannot create socket. err <%s>\n",
-                        strerror(errno));
+               strerror_r(errno, strerr_buf, sizeof(strerr_buf));
+               PRINTERR("cannot create socket. err <%s>\n", strerr_buf);
                ret = -1;
        }