ASAN: Heap Buffer Overflow 68/204768/1
authorDewal Agarwal <d1.agarwal@samsung.com>
Fri, 26 Apr 2019 06:51:20 +0000 (12:21 +0530)
committerDewal Agarwal <d1.agarwal@samsung.com>
Fri, 26 Apr 2019 06:51:20 +0000 (12:21 +0530)
Change-Id: I21212107d39b9607a9a11ecdabc00c96ff0a2f62
Signed-off-by: Dewal Agarwal <d1.agarwal@samsung.com>
src/sync-service/SyncManager_RepositoryEngine.cpp

index f6c762a5c928393227c1939ae87371773903b3f4..32ee0405347967734265817a289248aab915bb00 100644 (file)
@@ -1107,8 +1107,9 @@ RepositoryEngine::InsertSyncAdapterToDB(const char *SvcAppId, const char *PkgNam
                if (ret == SQLITE_DONE) {
                        sqlite3_reset(stmt);
                        if (!PkgName || strlen(PkgName) <= 0) {
+                               const char *SvcPkgId = SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId).c_str();
                                insert_query = sqlite3_mprintf("INSERT INTO %Q (SvcAppId, PkgName, UserId, DoA, AppStatus, ProcId) VALUES (%Q, %Q, %Q, %Q, %Q, %Q)",
-                                                                                               SYNC_ADAPTER_TABLE, SvcAppId, SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId).c_str(),
+                                                                                               SYNC_ADAPTER_TABLE, SvcAppId, SvcPkgId,
                                                                                                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)",
@@ -1943,12 +1944,13 @@ RepositoryEngine::UpdateSyncJobToDB(const char *SvcAppId, int UserId, const char
                }
 
                char *update_query = NULL;
+               const char *SvcPkgId = SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId).c_str();
 
                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, SyncManager::GetInstance()->GetPkgIdByAppId(SvcAppId).c_str(), uid, SyncType, JobName);
+                                                                               SvcAppId, SvcPkgId, uid, SyncType, JobName);
 
                sqlite3_stmt *stmt = NULL;
                int ret = SQLITE_OK;