From 27d98c74a3f519a006a7c86824c70ab2ae103d12 Mon Sep 17 00:00:00 2001 From: Kyoungyong Lee Date: Mon, 20 Jun 2016 15:30:39 +0900 Subject: [PATCH] fixed svace defects Change-Id: Icdd719e4559470e0ecda5d0f5481244e1d97d624 --- pkgmgr_plugin/privileges.cpp | 15 ++++++++++----- server/src/CynaraService.cpp | 11 ++++++++--- server/src/PrivacyGuardDb.cpp | 31 ++++++++++++++++--------------- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/pkgmgr_plugin/privileges.cpp b/pkgmgr_plugin/privileges.cpp index d9ee58e..b00f9a7 100755 --- a/pkgmgr_plugin/privileges.cpp +++ b/pkgmgr_plugin/privileges.cpp @@ -36,10 +36,13 @@ void destroy_char_list(char** ppList, int size) if (ppList) { for (i = 0; i < size; ++i) { - if (ppList[i]) + if (ppList[i]) { free(ppList[i]); + } + } + if (ppList) { + free(ppList); } - free(ppList); } } @@ -68,7 +71,10 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char* packageId) // Node: xmlNodePtr curPtr = xmlFirstElementChild(xmlDocGetRootElement(docPtr)); - + if (curPtr == NULL) { + LOGE("Failed to get the element. xmlFirstElementChild() returned NULL."); + return -EINVAL; + } curPtr = curPtr->xmlChildrenNode; if (curPtr == NULL) { LOGE("No privileges"); @@ -120,6 +126,7 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char* packageId) LOGE("Failed to add monitor policy: [%d]", ret); return -EIO; } + if (temp) destroy_char_list(temp, privilegeList.size() + 1); @@ -149,8 +156,6 @@ int PKGMGR_PARSER_PLUGIN_UNINSTALL(xmlDocPtr docPtr, const char* packageId) return -EINVAL; } - LOGD("PKGMGR_PARSER_PLUGIN_UNINSTALL() called with [%s].", packageId); - PrivacyGuardClient *pInst = PrivacyGuardClient::getInstance(); int res = pInst->PgDeleteLogsByPackageId(std::string(packageId)); diff --git a/server/src/CynaraService.cpp b/server/src/CynaraService.cpp index 2044f9f..5a39e99 100755 --- a/server/src/CynaraService.cpp +++ b/server/src/CynaraService.cpp @@ -152,9 +152,11 @@ CynaraService::getEntriesThread(void* pData) usleep(SLEEP_TIME * 20); // 1 SEC #endif } else { - res = CynaraService::updateDb(monitor_entries); - if(res != PRIV_GUARD_ERROR_SUCCESS){ - PG_LOGE("CynaraService::updateDb() is failed. [%d]", res); + if (monitor_entries) { + res = CynaraService::updateDb(monitor_entries); + if(res != PRIV_GUARD_ERROR_SUCCESS) { + PG_LOGE("CynaraService::updateDb() is failed. [%d]", res); + } } } @@ -204,10 +206,13 @@ CynaraService::updateDb(cynara_monitor_entry **monitor_entries) // check package ID std::string tempPackageId = client; + PG_LOGD("Package ID from cynara: [%s]", client); if (tempPackageId.substr(0, USER_APP_PREFIX_LEN).compare(USER_APP_PREFIX) == 0) { packageId = tempPackageId.substr(USER_APP_PREFIX_LEN, tempPackageId.length() - USER_APP_PREFIX_LEN); + PG_LOGD("Fixed Package ID: [%s]", packageId.c_str()); } else { packageId = client; + PG_LOGD("Fixed Package ID: [%s]", client); } // datetime diff --git a/server/src/PrivacyGuardDb.cpp b/server/src/PrivacyGuardDb.cpp index 33b0e72..ef72cb2 100755 --- a/server/src/PrivacyGuardDb.cpp +++ b/server/src/PrivacyGuardDb.cpp @@ -993,19 +993,19 @@ PrivacyGuardDb::PgForeachPackageInfoByPrivacyId(const int userId, const std::str static const std::string PKGINFO_SELECT = std::string("SELECT COUNT(*) FROM StatisticsMonitorInfo WHERE USER_ID=? AND PKG_ID=? AND PRIVACY_ID=? AND USE_DATE>=? AND USE_DATE<=?"); sqlite3_stmt* infoStmt; time_t start_date, today_midnight, end_date; - struct tm *date = NULL; + struct tm date; // get start~end date (for 7 days) end_date = time(NULL); - date = localtime(&end_date); - PG_LOGD("current (end) time [%d]: %4d/%2d/%2d %2d:%2d", end_date, date->tm_year + 1900, date->tm_mon + 1, date->tm_mday, date->tm_hour, date->tm_min); - date->tm_hour = 0; - date->tm_min = 0; - date->tm_sec = 0; - today_midnight = mktime(date); + localtime_r(&end_date, &date); + PG_LOGD("current (end) time [%d]: %4d/%2d/%2d %2d:%2d", end_date, date.tm_year + 1900, date.tm_mon + 1, date.tm_mday, date.tm_hour, date.tm_min); + date.tm_hour = 0; + date.tm_min = 0; + date.tm_sec = 0; + today_midnight = mktime(&date); start_date = today_midnight - (UNIX_TIME_ONE_DAY * (PRIVACY_GUARD_DAYS - 1)); - date = localtime(&start_date); - PG_LOGD("start time [%d]: %4d/%2d/%2d %2d:%2d", start_date, date->tm_year + 1900, date->tm_mon + 1, date->tm_mday, date->tm_hour, date->tm_min); + localtime_r(&start_date, &date); + PG_LOGD("start time [%d]: %4d/%2d/%2d %2d:%2d", start_date, date.tm_year + 1900, date.tm_mon + 1, date.tm_mday, date.tm_hour, date.tm_min); // [CYNARA] Flush Entries res = cynara_monitor_entries_flush(p_cynara_monitor); @@ -1056,23 +1056,23 @@ PrivacyGuardDb::PgForeachPackageInfoByPrivacyId(const int userId, const std::str // prepare res = sqlite3_prepare_v2(m_sqlHandler, PKGINFO_SELECT.c_str(), -1, &infoStmt, NULL); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_prepare_v2 : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_prepare_v2 : %d", res); // bind res = sqlite3_bind_int(infoStmt, 1, userId); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); res = sqlite3_bind_text(infoStmt, 2, p_data.package_id, -1, SQLITE_TRANSIENT); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_text : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_text : %d", res); res = sqlite3_bind_text(infoStmt, 3, privacyId.c_str(), -1, SQLITE_TRANSIENT); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_text : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_text : %d", res); res = sqlite3_bind_int(infoStmt, 4, start_date); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); res = sqlite3_bind_int(infoStmt, 5, end_date); - TryCatchResLogReturn(res == SQLITE_OK, m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); + TryCatchResLogReturn(res == SQLITE_OK, SAFE_FREE(p_data.package_id); m_dbMutex.unlock(), PRIV_GUARD_ERROR_DB_ERROR, "sqlite3_bind_int : %d", res); if ((res = sqlite3_step(infoStmt)) == SQLITE_ROW) { int count = sqlite3_column_int(infoStmt, 0); @@ -1082,6 +1082,7 @@ PrivacyGuardDb::PgForeachPackageInfoByPrivacyId(const int userId, const std::str p_data.count = count; packageInfoList.push_back(p_data); } + sqlite3_reset(infoStmt); } m_dbMutex.unlock(); -- 2.7.4