From: Haejeong Kim Date: Thu, 13 Apr 2017 01:42:41 +0000 (+0900) Subject: Memory leak fix and use g_strlcpy instead of strncpy. X-Git-Tag: submit/tizen/20170413.020954^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bc63fff4473d01c2ccfacf699a75708f18391971;p=platform%2Fcore%2Fmultimedia%2Fdcm-service.git Memory leak fix and use g_strlcpy instead of strncpy. Change-Id: I14e7846b824ffa4ab00a16c677f6679b825b659c --- diff --git a/packaging/dcm-service.spec b/packaging/dcm-service.spec index 86441e6..55b95cb 100755 --- a/packaging/dcm-service.spec +++ b/packaging/dcm-service.spec @@ -1,6 +1,6 @@ Name: dcm-service Summary: A media DCM(Digital Contents Management) Service -Version: 0.0.14 +Version: 0.0.15 Release: 0 Group: Multimedia/Service License: Apache-2.0 diff --git a/src/DcmDbUtils.cpp b/src/DcmDbUtils.cpp index eeb46bd..3c8edd3 100755 --- a/src/DcmDbUtils.cpp +++ b/src/DcmDbUtils.cpp @@ -280,7 +280,6 @@ int DcmDbUtils::_dcm_svc_db_get_scan_image_list_by_path(GList **image_list, bool return TRUE; } - while(sqlite3_step(sql_stmt) == SQLITE_ROW) { DcmScanItem *scan_item = (DcmScanItem *) g_malloc0(sizeof(DcmScanItem)); if (!scan_item) { @@ -300,8 +299,7 @@ int DcmDbUtils::_dcm_svc_db_get_scan_image_list_by_path(GList **image_list, bool scan_item->image_width = sqlite3_column_int(sql_stmt, 2); scan_item->image_height = sqlite3_column_int(sql_stmt, 3); scan_item->image_orientation = sqlite3_column_int(sql_stmt, 4); - if (DCM_STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 5))) - scan_item->mime_type = strdup((const char *)sqlite3_column_text(sql_stmt, 5)); + scan_item->mime_type = g_strdup((const char *)sqlite3_column_text(sql_stmt, 5)); /* scan item retrieved by this function will be marked as SCAN_SINGLE */ scan_item->scan_item_type = DCM_SCAN_ITEM_TYPE_SCAN_SINGLE; @@ -310,7 +308,6 @@ int DcmDbUtils::_dcm_svc_db_get_scan_image_list_by_path(GList **image_list, bool dcm_sec_debug("media uuid: [%s] file path: [%s]", scan_item->media_uuid, scan_item->file_path); } - DCM_SQLITE3_FINALIZE(sql_stmt); @@ -362,8 +359,7 @@ int DcmDbUtils::_dcm_svc_db_get_scan_image_list_from_db(GList **image_list, bool scan_item->image_width = sqlite3_column_int(sql_stmt, 3); scan_item->image_height = sqlite3_column_int(sql_stmt, 4); scan_item->image_orientation = sqlite3_column_int(sql_stmt, 5); - if (DCM_STRING_VALID((const char *)sqlite3_column_text(sql_stmt, 6))) - scan_item->mime_type = strdup((const char *)sqlite3_column_text(sql_stmt, 6)); + scan_item->mime_type = g_strdup((const char *)sqlite3_column_text(sql_stmt, 6)); /* scan item retrieved by this function will be marked as SCAN_ALL */ scan_item->scan_item_type = DCM_SCAN_ITEM_TYPE_SCAN_ALL; @@ -392,7 +388,7 @@ int DcmDbUtils::_dcm_svc_db_generate_uuid(DcmFaceItem **face) uuid_generate(uuid_value); uuid_unparse(uuid_value, uuid_unparsed); - (*face)->face_uuid = strdup(uuid_unparsed); + (*face)->face_uuid = g_strdup(uuid_unparsed); if ((*face)->face_uuid == NULL) { ret = DCM_ERROR_UUID_GENERATE_FAILED; diff --git a/src/DcmFaceUtils.cpp b/src/DcmFaceUtils.cpp index 6d1764f..f5d5b09 100755 --- a/src/DcmFaceUtils.cpp +++ b/src/DcmFaceUtils.cpp @@ -184,9 +184,7 @@ DCM_SVC_FACE_RECOGNIZE_BUFFER_FAILED: dcm_error("Failed to insert face item into face_scan_list! err: %d", err); } - if (face_info != NULL && face_info->count > 0) { - dcm_face_destroy_face_info(face_info); - } + dcm_face_destroy_face_info(face_info); if (face != NULL) { DcmFaceApi::freeDcmFaceItem(face); diff --git a/src/DcmIpcUtils.cpp b/src/DcmIpcUtils.cpp index 19b1016..7d347ea 100755 --- a/src/DcmIpcUtils.cpp +++ b/src/DcmIpcUtils.cpp @@ -180,7 +180,7 @@ int DcmIpcUtils::sendClientSocketMsg(int socket_fd, DcmIpcMsgType msg_type, unsi send_msg.result = (int)result; if (msg != NULL) { send_msg.msg_size = strlen(msg); - strncpy(send_msg.msg, msg, send_msg.msg_size); + g_strlcpy(send_msg.msg, msg, DCM_IPC_MSG_MAX_SIZE); } /* If message size is larget than max_size, then message is invalid */ @@ -221,7 +221,7 @@ int DcmIpcUtils::sendSocketMsg(DcmIpcMsgType msg_type, uid_t uid, const char *ms send_msg.uid = uid; if (msg != NULL) { send_msg.msg_size = strlen(msg); - strncpy(send_msg.msg, msg, send_msg.msg_size); + g_strlcpy(send_msg.msg, msg, DCM_IPC_MSG_MAX_SIZE); } /* If message size is larget than max_size, then message is invalid */ @@ -277,7 +277,7 @@ int DcmIpcUtils::sendCompleteMsg(DcmIpcMsgType msg_type, const unsigned int coun send_msg.result = count; if (msg != NULL) { send_msg.msg_size = strlen(msg); - strncpy(send_msg.msg, msg, send_msg.msg_size); + g_strlcpy(send_msg.msg, msg, DCM_IPC_MSG_MAX_SIZE); } /* If message size is larget than max_size, then message is invalid */