Fixed memory corruption. AddressSanitizer: heap-buffer-overflow
authorj-h.choi <j-h.choi@samsung.com>
Wed, 18 Mar 2020 05:58:36 +0000 (14:58 +0900)
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>
Wed, 18 Mar 2020 09:27:39 +0000 (18:27 +0900)
Change-Id: Ie71f63fa076a11ac80166e0b11b4e6a6b178cf50

NativeLauncher/inc/db_manager.h
NativeLauncher/util/db_manager.cc

index a9af787..1eb5b24 100644 (file)
@@ -27,7 +27,6 @@
                        NUGET           TEXT,\
                        NAME            TEXT,\
                        VERSION         TEXT);"
-#define QUERY_MAX_LEN  4096
 
 sqlite3* dbCreate(std::string path, std::string query);
 sqlite3* dbOpen(std::string path);
index 6edadfb..1cda879 100644 (file)
@@ -137,7 +137,7 @@ bool dbUpdate(sqlite3 *sqlite, std::string path, std::string query)
 {
        sqlite3_stmt *stmt = NULL;
        int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
-       ret = sqlite3_prepare(sqlite, query.c_str(), QUERY_MAX_LEN , &stmt, NULL);
+       ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
        if (ret != SQLITE_OK) {
                _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
                dbClose(sqlite);
@@ -158,7 +158,7 @@ bool dbInsert(sqlite3 *sqlite, std::string path, std::string query)
 {
        sqlite3_stmt *stmt = NULL;
        int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
-       ret = sqlite3_prepare(sqlite, query.c_str(), QUERY_MAX_LEN , &stmt, NULL);
+       ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
        if (ret != SQLITE_OK) {
                _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
                dbClose(sqlite);
@@ -180,7 +180,7 @@ std::vector<std::string> dbSelect(sqlite3 *sqlite, std::string path, std::string
        std::vector<std::string> updateDB;
        sqlite3_stmt* stmt = NULL;
        const char* str = NULL;
-       int ret = sqlite3_prepare_v2(sqlite, query.c_str(), strlen(query.c_str()), &stmt, NULL);
+       int ret = sqlite3_prepare_v2(sqlite, query.c_str(), query.size(), &stmt, NULL);
        if (ret != SQLITE_OK) {
                _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
                dbClose(sqlite);
@@ -198,7 +198,7 @@ bool dbDelete(sqlite3 *sqlite, std::string path, std::string query)
 {
        sqlite3_stmt *stmt = NULL;
        int ret = sqlite3_exec(sqlite, "BEGIN;", NULL, NULL, NULL);
-       ret = sqlite3_prepare(sqlite, query.c_str(), QUERY_MAX_LEN , &stmt, NULL);
+       ret = sqlite3_prepare(sqlite, query.c_str(), query.size(), &stmt, NULL);
        if (ret != SQLITE_OK) {
                _ERR("Sqlite error : [%d, %s]", ret, sqlite3_errmsg(sqlite));
                dbClose(sqlite);