Svace issue fix. change strncpy to g_strlcpy 51/124951/2
authorHaejeong Kim <backto.kim@samsung.com>
Thu, 13 Apr 2017 06:47:14 +0000 (15:47 +0900)
committerHaejeong Kim <backto.kim@samsung.com>
Thu, 13 Apr 2017 06:48:12 +0000 (15:48 +0900)
Change-Id: I03e087bb28c392f13d867c271bb574acd9edffee

16 files changed:
lib/include/media-util-internal.h
lib/media-util-cynara.c
lib/media-util-db.c
lib/media-util-dcm.c [changed mode: 0644->0755]
lib/media-util-ipc.c
lib/media-util-register.c
src/common/include/media-common-types.h
src/common/media-common-utils.c
src/scanner-v2/media-scanner-extract-v2.c
src/scanner-v2/media-scanner-socket-v2.c
src/scanner-v2/media-scanner-v2.c
src/scanner/media-scanner-socket.c
src/server/media-server-dcm.c [changed mode: 0644->0755]
src/server/media-server-main.c
src/server/media-server-socket.c
src/server/media-server-thumb.c

index 5f13cef..5006f76 100755 (executable)
@@ -36,6 +36,8 @@
                                                        else { src = malloc(size); if (src) memset(src, 0x0, size); } }
 #define MS_STRING_VALID(str)   \
        ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
+#define SAFE_STRLCPY(dst, src, n)      g_strlcpy(dst, src, n);
+
 
 int media_db_update_db(MediaDBHandle *handle, const char *query_str);
 int media_db_update_db_batch_start(const char *query_str);
index 7bfceab..742984c 100755 (executable)
@@ -204,7 +204,7 @@ int ms_cynara_receive_untrusted_message_thumb(int sockfd, thumbMsg *recv_msg, ms
 
        }
 
-       strncpy(recv_msg->org_path, (char*)buf, recv_msg->origin_path_size);
+       SAFE_STRLCPY(recv_msg->org_path, (char*)buf, sizeof(recv_msg->org_path));
        MS_SAFE_FREE(buf);
 
        if (recv_msg->dest_path_size <= 0) {
@@ -231,7 +231,7 @@ int ms_cynara_receive_untrusted_message_thumb(int sockfd, thumbMsg *recv_msg, ms
 
        }
 
-       strncpy(recv_msg->dst_path, (char*)buf, recv_msg->dest_path_size);
+       SAFE_STRLCPY(recv_msg->dst_path, (char*)buf, sizeof(recv_msg->dst_path));
        MS_SAFE_FREE(buf);
 
 
index 7459b87..0d509f2 100755 (executable)
@@ -261,7 +261,7 @@ static int __media_db_request_update_tcp(ms_msg_type_e msg_type, const char *req
 
        send_msg.msg_type = msg_type;
        send_msg.msg_size = request_msg_size;
-       strncpy(send_msg.msg, request_msg, request_msg_size);
+       SAFE_STRLCPY(send_msg.msg, request_msg, sizeof(send_msg.msg));
        send_msg.uid = uid;
 
        /*Create Socket*/
@@ -272,7 +272,7 @@ static int __media_db_request_update_tcp(ms_msg_type_e msg_type, const char *req
        /*Set server Address*/
        memset(&serv_addr, 0, sizeof(serv_addr));
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), sizeof(serv_addr.sun_path));
 
        /* Connecting to the media db server */
        if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
@@ -353,7 +353,7 @@ static int __media_db_prepare_tcp_client_socket()
        /*Set server Address*/
        memset(&serv_addr, 0, sizeof(serv_addr));
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), sizeof(serv_addr.sun_path));
 
        /* Connecting to the media db server */
        if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
@@ -409,7 +409,7 @@ static int __media_db_request_batch_update(ms_msg_type_e msg_type, const char *r
        send_msg.msg_type = msg_type;
        send_msg.msg_size = request_msg_size;
        send_msg.uid = uid;
-       strncpy(send_msg.msg, request_msg, request_msg_size);
+       SAFE_STRLCPY(send_msg.msg, request_msg, sizeof(send_msg.msg));
 
        sockfd = __media_db_get_client_tcp_sock();
        if (sockfd <= 0)
@@ -734,7 +734,7 @@ static int __media_db_request_recovery(uid_t uid)
 
        send_msg.msg_type = MS_MSG_MEDIA_DB_MALFORMED;
        send_msg.msg_size = request_msg_size;
-       strncpy(send_msg.msg, db_path, request_msg_size);
+       SAFE_STRLCPY(send_msg.msg, db_path, sizeof(send_msg.msg));
        MS_SAFE_FREE(db_path);
        send_msg.uid = uid;
 
@@ -747,7 +747,7 @@ static int __media_db_request_recovery(uid_t uid)
        memset(&serv_addr, 0, sizeof(serv_addr));
        serv_addr.sun_family = AF_UNIX;
        /*      MSAPI_DBG_SLOG("%s", MEDIA_IPC_PATH[port]); */
-       strncpy(serv_addr.sun_path, MEDIA_IPC_PATH[port], strlen(MEDIA_IPC_PATH[port]));
+       SAFE_STRLCPY(serv_addr.sun_path, MEDIA_IPC_PATH[port], sizeof(serv_addr.sun_path));
 
        /* Connecting to the media db server */
        if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
old mode 100644 (file)
new mode 100755 (executable)
index 5efd854..3211f6c
@@ -310,7 +310,7 @@ int _media_dcm_send_request()
        memset(&serv_addr, 0, sizeof(serv_addr));
        sock = sock_info.sock_fd;
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), sizeof(serv_addr.sun_path));
 
        GIOChannel *channel = NULL;
        channel = g_io_channel_unix_new(sock);
@@ -347,7 +347,7 @@ int _media_dcm_send_request()
        req_msg.pid = getpid();
        req_msg.msg_type = req_manager->msg_type;
        req_msg.uid = req_manager->uid;
-       strncpy(req_msg.msg, req_manager->path, sizeof(req_msg.msg));
+       SAFE_STRLCPY(req_msg.msg, req_manager->path, sizeof(req_msg.msg));
        req_msg.msg[strlen(req_msg.msg)] = '\0';
        req_msg.msg_size = strlen(req_msg.msg) + 1;
 
@@ -404,7 +404,7 @@ int _media_dcm_request(int msg_type, const char *path, uid_t uid)
        memset(&serv_addr, 0, sizeof(serv_addr));
        sock = sock_info.sock_fd;
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[sock_info.port]), sizeof(serv_addr.sun_path));
 
        /* Connecting to the dcm service */
        if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
index d81fa6f..6d12d31 100755 (executable)
@@ -128,7 +128,7 @@ int ms_ipc_create_server_socket(ms_msg_port_type_e port, int *sock_fd)
        memset(&serv_addr, 0, sizeof(serv_addr));
        serv_addr.sun_family = AF_UNIX;
        unlink(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[serv_port]));
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[serv_port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[serv_port])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[serv_port]), sizeof(serv_addr.sun_path));
 
        /* Bind to the local address */
        for (i = 0; i < 100; i++) {
@@ -173,7 +173,7 @@ int ms_ipc_send_msg_to_server_tcp(int sockfd, ms_msg_port_type_e port, ms_comm_m
        memset(&addr, 0, sizeof(addr));
 
        addr.sun_family = AF_UNIX;
-       strncpy(addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[port]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[port])));
+       SAFE_STRLCPY(addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[port]), sizeof(addr.sun_path));
 
        /* Connecting to the media db server */
        if (connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
index 52e7a2f..701f2e1 100755 (executable)
@@ -513,9 +513,9 @@ static int __media_db_request_update_async(ms_msg_type_e msg_type, const char *s
        send_msg.pid = syscall(__NR_getpid);
        send_msg.msg_size = request_msg_size;
        send_msg.uid = uid;
-       strncpy(send_msg.msg, request_msg, request_msg_size);
-       if (storage_id != NULL)
-               strncpy(send_msg.storage_id, storage_id, MS_UUID_SIZE -1);
+       SAFE_STRLCPY(send_msg.msg, request_msg, sizeof(send_msg.msg));
+       if (MS_STRING_VALID(storage_id))
+               SAFE_STRLCPY(send_msg.storage_id, storage_id, sizeof(send_msg.storage_id));
 
        /*Create Socket*/
        ret = ms_ipc_create_client_socket(0, &sock_info);
@@ -565,7 +565,7 @@ static int __media_db_request_update_cancel(ms_msg_type_e msg_type, const char *
        send_msg.msg_type = msg_type;
        send_msg.pid = syscall(__NR_getpid);
        send_msg.msg_size = request_msg_size;
-       strncpy(send_msg.msg, request_msg, request_msg_size);
+       SAFE_STRLCPY(send_msg.msg, request_msg, sizeof(send_msg.msg));
 
        /*Create Socket*/
        ret = ms_ipc_create_client_socket(0, &sock_info);
index 8d47b13..081b000 100755 (executable)
@@ -59,6 +59,7 @@ typedef enum {
                                                        else { src = malloc(size); if (src) memset(src, 0x0, size); } }
 #define MS_STRING_VALID(str)   \
                                                                ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
+#define SAFE_STRLCPY(dst, src, n)      g_strlcpy(dst, src, n);
 
 /*System default folder definition*/
 #define FAT_FILENAME_LEN_MAX           255     /* not inc null */
index 13d7d25..f58fc20 100755 (executable)
@@ -926,7 +926,7 @@ static int ms_get_cmdline_from_proc(pid_t pid, char *cmdline)
        else
                filename = filename + 1;
 
-       strncpy(cmdline, filename, PROC_NAME_MAX-1);
+       SAFE_STRLCPY(cmdline, filename, PROC_NAME_MAX);
 
        return MS_MEDIA_ERR_NONE;
 }
index 82a3ab7..9bae92c 100755 (executable)
@@ -565,8 +565,8 @@ void msc_insert_exactor_request(int message_type, bool ins_status, const char *s
        extract_data->uid = uid;
        extract_data->result = ins_status;
        extract_data->msg_size = strlen(path);
-       strncpy(extract_data->msg, path, extract_data->msg_size);
-       strncpy(extract_data->storage_id, storage_id, MS_UUID_SIZE-1);
+       SAFE_STRLCPY(extract_data->msg, path, sizeof(extract_data->msg));
+       SAFE_STRLCPY(extract_data->storage_id, storage_id, sizeof(extract_data->storage_id));
 
        if (message_type == MS_MSG_STORAGE_ALL || message_type == MS_MSG_STORAGE_PARTIAL || message_type == MS_MSG_STORAGE_INVALID) {
                g_async_queue_push(storage_extract_queue, GINT_TO_POINTER(extract_data));
index 605b0b2..5721582 100755 (executable)
@@ -271,7 +271,7 @@ int msc_send_result(int result, ms_comm_msg_s *res_data)
        send_msg.pid = res_data->pid;
        send_msg.result = result;
        send_msg.msg_size = res_data->msg_size;
-       strncpy(send_msg.msg, res_data->msg, send_msg.msg_size);
+       SAFE_STRLCPY(send_msg.msg, res_data->msg, sizeof(send_msg.msg));
 
        /* send ready message */
        err = write(fd, &send_msg, sizeof(send_msg));
@@ -306,7 +306,7 @@ int msc_send_result_partial(int result, ms_msg_type_e msg_type, int pid, const c
        send_msg.pid = pid;
        send_msg.result = result;
        send_msg.msg_size = strlen(msg);
-       strncpy(send_msg.msg, msg, send_msg.msg_size);
+       SAFE_STRLCPY(send_msg.msg, msg, sizeof(send_msg.msg));
 
        /* send ready message */
        err = write(fd, &send_msg, sizeof(send_msg));
index ac7f042..c53cd4f 100755 (executable)
@@ -183,7 +183,7 @@ void _msc_datadisc_vconf_cb(void *data)
 
                        MS_DBG("[disc path] %s", disc_path);
                        memset(storage_path, 0x0, sizeof(storage_path));
-                       strncpy(storage_path, disc_path, sizeof(storage_path)-1);
+                       SAFE_STRLCPY(storage_path, disc_path, sizeof(storage_path));
 
                        if (msc_get_disc_dir_scan_status() ||
                                msc_get_disc_stg_scan_status()) {
index 3209ca8..d80d0f0 100755 (executable)
@@ -166,7 +166,7 @@ int msc_send_result(int result, ms_comm_msg_s *res_data)
        send_msg.result = result;
        send_msg.msg_size = res_data->msg_size;
        send_msg.uid = res_data->uid;
-       strncpy(send_msg.msg, res_data->msg, send_msg.msg_size);
+       SAFE_STRLCPY(send_msg.msg, res_data->msg, sizeof(send_msg.msg));
 
        /* send ready message */
        err = write(fd, &send_msg, sizeof(send_msg));
old mode 100644 (file)
new mode 100755 (executable)
index 5290c8a..4d58ae8
@@ -293,7 +293,7 @@ gboolean _ms_dcm_agent_send_msg_to_dcm_server(dcmMsg *recv_msg, dcmMsg *res_msg)
        memset(&serv_addr, 0, sizeof(serv_addr));
        sock = sock_info.sock_fd;
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_DCM_DAEMON_PORT]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_DCM_DAEMON_PORT])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_DCM_DAEMON_PORT]), sizeof(serv_addr.sun_path));
 
        /* Connecting to the DCM service */
        if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
@@ -476,7 +476,7 @@ gboolean _ms_dcm_request_to_server(gpointer data)
                                res_msg.msg_type = recv_msg->msg_type;
                                res_msg.msg_size = strlen(recv_msg->msg);
                                if (res_msg.msg_size > 0)
-                                       strncpy(res_msg.msg, recv_msg->msg, res_msg.msg_size);
+                                       SAFE_STRLCPY(res_msg.msg, recv_msg->msg, sizeof(res_msg.msg));
                                res_msg.result = recv_msg->result;
 
                                if (send(client_sock, &res_msg, sizeof(res_msg), 0) != sizeof(res_msg))
@@ -496,7 +496,7 @@ gboolean _ms_dcm_request_to_server(gpointer data)
                MS_DBG_ERR("recv_msg is NULL from queue request");
        }
 
-       strncpy(res_msg.msg, recv_msg->msg, recv_msg->msg_size);
+       SAFE_STRLCPY(res_msg.msg, recv_msg->msg, sizeof(res_msg.msg));
        res_msg.msg_size = recv_msg->msg_size;
 
        if (send(client_sock, &res_msg, sizeof(res_msg), 0) != sizeof(res_msg))
@@ -584,7 +584,7 @@ gboolean _ms_dcm_agent_read_socket(GIOChannel *src,
                res_msg.msg_type = recv_msg->msg_type;
                if (res_msg.msg_size != 0) {
                        res_msg.msg_size = recv_msg->msg_size;
-                       strncpy(res_msg.msg, recv_msg->msg, res_msg.msg_size);
+                       SAFE_STRLCPY(res_msg.msg, recv_msg->msg, sizeof(res_msg.msg));
                }
 
                if (send(client_sock, &res_msg, sizeof(dcmMsg), 0) != sizeof(dcmMsg))
index 6317f67..5057317 100755 (executable)
@@ -195,7 +195,7 @@ void _ms_datadisc_vconf_cb(void *data)
 
                MS_DBG("[disc path] %s", disc_path);
                memset(mnt_path, 0x0, sizeof(mnt_path));
-               strncpy(mnt_path, disc_path, sizeof(mnt_path)-1);
+               SAFE_STRLCPY(mnt_path, disc_path, sizeof(mnt_path));
 
                if (disc_state == 1) {
                        MS_DBG_WARN("[DISC INSERTED][%s]", disc_type);
@@ -730,7 +730,7 @@ static int __ms_check_disc_status(void)
 
                        MS_DBG("[disc path] %s", disc_path);
                        memset(mnt_path, 0x0, sizeof(mnt_path));
-                       strncpy(mnt_path, disc_path, sizeof(mnt_path)-1);
+                       SAFE_STRLCPY(mnt_path, disc_path, sizeof(mnt_path));
 
                        ret = ms_load_functions();
                        if (ret != MS_MEDIA_ERR_NONE) {
index 048850d..05d386b 100755 (executable)
@@ -163,7 +163,7 @@ int ms_reset_ownerlist()
                        send_msg.result = MS_MEDIA_ERR_DB_RESET;
                        send_msg.msg_type = MS_MSG_MEDIA_DB_RESET;
                        send_msg.msg_size = strlen(data->req_path);
-                       strncpy(send_msg.msg, data->req_path, send_msg.msg_size);
+                       SAFE_STRLCPY(send_msg.msg, data->req_path, sizeof(send_msg.msg));
 
                        /* owner data exists */
                        /* send result to the owner of request */
@@ -485,11 +485,11 @@ int ms_send_storage_scan_request(const char *root_path, const char *storage_id,
        /* msg_size & msg */
        if (root_path != NULL) {
                scan_msg.msg_size = strlen(root_path);
-               strncpy(scan_msg.msg, root_path, scan_msg.msg_size);
+               SAFE_STRLCPY(scan_msg.msg, root_path, sizeof(scan_msg.msg));
        }
 
        if (storage_id != NULL) {
-               strncpy(scan_msg.storage_id, storage_id, MS_UUID_SIZE-1);
+               SAFE_STRLCPY(scan_msg.storage_id, storage_id, sizeof(scan_msg.storage_id));
        }
 
        scan_msg.uid = uid;
@@ -954,8 +954,8 @@ int ms_send_storage_otg_scan_request(const char *path, const char *device_uuid,
 
        /* msg_size & msg */
        scan_msg.msg_size = strlen(path);
-       strncpy(scan_msg.msg, path, scan_msg.msg_size);
-       strncpy(scan_msg.storage_id, device_uuid, MS_UUID_SIZE-1);
+       SAFE_STRLCPY(scan_msg.msg, path, sizeof(scan_msg.msg));
+       SAFE_STRLCPY(scan_msg.storage_id, device_uuid, sizeof(scan_msg.storage_id));
 
        scan_msg.uid = uid;
 
index fc229fe..7e14ee2 100755 (executable)
@@ -241,7 +241,7 @@ int _ms_thumb_recv_msg(int sock, thumbMsg *msg)
                return MS_MEDIA_ERR_DATA_TAINTED;
        }
 
-       strncpy(msg->org_path, (char*)buf, msg->origin_path_size);
+       SAFE_STRLCPY(msg->org_path, (char*)buf, sizeof(msg->org_path));
 
        if (msg->dest_path_size <= 0 || msg->dest_path_size > MS_FILE_PATH_LEN_MAX) {
                MS_SAFE_FREE(buf);
@@ -250,7 +250,7 @@ int _ms_thumb_recv_msg(int sock, thumbMsg *msg)
                return MS_MEDIA_ERR_DATA_TAINTED;
        }
 
-       strncpy(msg->dst_path, (char *)buf + msg->origin_path_size, msg->dest_path_size);
+       SAFE_STRLCPY(msg->dst_path, (char *)buf + msg->origin_path_size, sizeof(msg->dst_path));
 
        MS_SAFE_FREE(msg->thumb_data);
 
@@ -449,7 +449,7 @@ gboolean _ms_thumb_agent_send_msg_to_thumb_server(thumbMsg *recv_msg, thumbMsg *
        memset(&serv_addr, 0, sizeof(serv_addr));
        sock = sock_info.sock_fd;
        serv_addr.sun_family = AF_UNIX;
-       strncpy(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_THUMB_DAEMON_PORT]), strlen(tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_THUMB_DAEMON_PORT])));
+       SAFE_STRLCPY(serv_addr.sun_path, tzplatform_mkpath(TZ_SYS_RUN, MEDIA_IPC_PATH[MS_THUMB_DAEMON_PORT]), sizeof(serv_addr.sun_path));
 
        /* Connecting to the thumbnail server */
        if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
@@ -647,7 +647,7 @@ gboolean _ms_thumb_request_to_server(gpointer data)
                                res_msg.msg_type = THUMB_RESPONSE;
                                res_msg.status = MS_MEDIA_ERR_INTERNAL;
                                res_msg.origin_path_size = strlen(recv_msg->org_path);
-                               strncpy(res_msg.org_path, recv_msg->org_path, res_msg.origin_path_size);
+                               SAFE_STRLCPY(res_msg.org_path, recv_msg->org_path, sizeof(res_msg.org_path));
                                res_msg.dst_path[0] = '\0';
                                res_msg.dest_path_size = 1;
                                res_msg.thumb_data = (unsigned char *)"\0";
@@ -676,7 +676,7 @@ gboolean _ms_thumb_request_to_server(gpointer data)
                MS_DBG_ERR("recv_msg is NULL from queue request");
        }
 
-       strncpy(res_msg.org_path, recv_msg->org_path, recv_msg->origin_path_size);
+       SAFE_STRLCPY(res_msg.org_path, recv_msg->org_path, sizeof(res_msg.org_path));
        res_msg.origin_path_size = recv_msg->origin_path_size;
        res_msg.dest_path_size = strlen(res_msg.dst_path) + 1;
 
@@ -790,7 +790,7 @@ gboolean _ms_thumb_agent_read_socket(GIOChannel *src,
                res_msg.msg_type = THUMB_RESPONSE;
                res_msg.status = MS_MEDIA_ERR_INTERNAL;
                res_msg.origin_path_size = recv_msg->origin_path_size;
-               strncpy(res_msg.org_path, recv_msg->org_path, res_msg.origin_path_size);
+               SAFE_STRLCPY(res_msg.org_path, recv_msg->org_path, sizeof(res_msg.org_path));
                res_msg.dst_path[0] = '\0';
                res_msg.dest_path_size = 1;
                res_msg.thumb_size = 0;