Fix: Memory Leak - sqlite statement 52/259352/2 accepted/tizen_6.5_unified tizen_6.5 accepted/tizen/6.5/unified/20211028.094132 accepted/tizen/unified/20210615.120200 submit/tizen/20210615.063939 submit/tizen_6.5/20211028.161601 tizen_6.5.m2_release
authorDewal Agarwal <d1.agarwal@samsung.com>
Fri, 4 Jun 2021 12:53:59 +0000 (18:23 +0530)
committerDewal Agarwal <d1.agarwal@samsung.com>
Wed, 9 Jun 2021 12:07:05 +0000 (17:37 +0530)
Change-Id: Ie256714723c29d4866ca488c5638be278a2652d1

src/sync-service/SyncManager_RepositoryEngine.cpp

index b6cb5bcf61e1c026a10304d7ccd3beb64529c654..525556d6507fb72cb60d4c60b7f967ecf58c16c1 100644 (file)
@@ -1105,15 +1105,17 @@ RepositoryEngine::InsertSyncAdapterToDB(const char *SvcAppId, const char *PkgNam
 
                ret = sqlite3_step(stmt);
                if (ret == SQLITE_DONE) {
-                       sqlite3_reset(stmt);
+                       sqlite3_finalize(stmt);
                        if (!PkgName || strlen(PkgName) <= 0) {
                                string SvcPkgId = SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId);
-                               insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, DoA, AppStatus, ProcId) VALUES (%Q, %Q, %Q, %Q, %Q, %Q)",
-                                                                                               SYNC_ADAPTER_TABLE, SvcAppId, SvcPkgId.c_str(),
-                                                                                               uid, DoA, AppStatus ? AppStatus : "enabled", pid);
+                               insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, DoA, AppStatus, ProcId) "
+                                                               "VALUES (%Q, %Q, %Q, %Q, %Q, %Q)",
+                                                               SYNC_ADAPTER_TABLE, SvcAppId, SvcPkgId.c_str(),
+                                                               uid, DoA, AppStatus ? AppStatus : "enabled", pid);
                        } else {
-                               insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, DoA, AppStatus, ProcId) VALUES (%Q, %Q, %Q, %Q, %Q, %Q)",
-                                                                                               SYNC_ADAPTER_TABLE, SvcAppId, PkgName, uid, DoA, AppStatus ? AppStatus : "enabled", pid);
+                               insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, DoA, AppStatus, ProcId) "
+                                                               "VALUES (%Q, %Q, %Q, %Q, %Q, %Q)",
+                                                               SYNC_ADAPTER_TABLE, SvcAppId, PkgName, uid, DoA, AppStatus ? AppStatus : "enabled", pid);
                        }
 
                        ret = sqlite3_prepare_v2(db, insert_query, strlen(insert_query), &stmt, NULL);
@@ -1753,12 +1755,12 @@ RepositoryEngine::InsertSyncJobToDB(const char *SvcAppId, const char *PkgName, i
 
                ret = sqlite3_step(stmt);
                if (ret == SQLITE_DONE) {
-                       sqlite3_reset(stmt);
+                       sqlite3_finalize(stmt);
                        insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, AppStatus, SyncJobId, SyncType, "
-                                                                                       "AccountId, JobName, Interval, Expedit, NoRetry, UserDataKey, UserDataValue) "
-                                                                                       "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q)",
-                                                                                       SYNC_JOB_TABLE, SvcAppId, PkgName, uid, AppStatus, jobId, SyncType,
-                                                                                       accId, JobName, interval, expedit, noRetry, UserKey, UserValue);
+                                                       "AccountId, JobName, Interval, Expedit, NoRetry, UserDataKey, UserDataValue) "
+                                                       "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q)",
+                                                       SYNC_JOB_TABLE, SvcAppId, PkgName, uid, AppStatus, jobId, SyncType,
+                                                       accId, JobName, interval, expedit, noRetry, UserKey, UserValue);
 
                        ret = sqlite3_prepare_v2(db, insert_query, strlen(insert_query), &stmt, NULL);
                        if (ret != SQLITE_OK) {
@@ -1917,10 +1919,10 @@ RepositoryEngine::UpdateSyncJobToDB(const char *SvcAppId, int UserId, const char
                char *update_query = NULL;
                string SvcPkgId = SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId);
                update_query = sqlite3_mprintf("UPDATE %Q SET AppStatus=%Q, SyncJobId=%Q, AccountId=%Q, Interval=%Q, "
-                                                                               "Expedit=%Q, NoRetry=%Q, UserDataKey=%Q, UserDataValue=%Q "
-                                                                               "WHERE SvcAppId=%Q AND PkgName=%Q AND UserId=%Q AND SyncType=%Q AND JobName=%Q",
-                                                                               SYNC_JOB_TABLE, AppStatus, jobId, accId, interval, expedit, noRetry, UserKey, UserValue,
-                                                                               SvcAppId, SvcPkgId.c_str(), uid, SyncType, JobName);
+                                               "Expedit=%Q, NoRetry=%Q, UserDataKey=%Q, UserDataValue=%Q "
+                                               "WHERE SvcAppId=%Q AND PkgName=%Q AND UserId=%Q AND SyncType=%Q AND JobName=%Q",
+                                               SYNC_JOB_TABLE, AppStatus, jobId, accId, interval, expedit, noRetry, UserKey, UserValue,
+                                               SvcAppId, SvcPkgId.c_str(), uid, SyncType, JobName);
 
                sqlite3_stmt *stmt = NULL;
                int ret = SQLITE_OK;