Merge "[Bugfix][API-1474]ril-service memory leak problem occurs when short messages are repeatedly read, received, and deleted." into GSW3.0-No-Connman
diff --git a/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp b/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
index 95b5d13..0d926df 100755
--- a/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
@@ -64,9 +64,11 @@
{
if(index == sms_indexs[cnt])
{
+ sqlite3_close(smsDb);
return 1;
}
}
+ sqlite3_close(smsDb);
return 0;
}
@@ -158,6 +160,7 @@
{
LYERRLOG("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
+ sqlite3_close(smsDb);
return -1;
}
else
@@ -200,17 +203,28 @@
char *zErrMsg = 0;
int rc;
char sql[128]={0};
+
+ if(index != -1)
+ {
+ /*lei add*/
+ if(!lynq_check_index(index))
+ {
+ return LYNQ_E_SMS_SQL_FAIL;
+ }
+ /*lei add*/
+ }
+
/* Open database */
rc = sqlite3_open(SMS_DB_PATH, &smsDb);
+ if( rc )
+ {
+ LYVERBLOG("[%s] Can't open database: %s\n", __FUNCTION__,sqlite3_errmsg(smsDb));
+ return LYNQ_E_SMS_DB_FAIL;
+ }
+ LYVERBLOG("[%s] Opened database successfully\n",__FUNCTION__);
if(index == -1)
{
sprintf(sql,"DELETE from LYNQSMS");
- if( rc )
- {
- LYVERBLOG("[%s] Can't open database: %s\n", __FUNCTION__,sqlite3_errmsg(smsDb));
- return LYNQ_E_SMS_DB_FAIL;
- }
- LYVERBLOG("[%s] Opened database successfully\n",__FUNCTION__);
rc = sqlite3_exec(smsDb, sql, NULL, NULL, &zErrMsg);
if( rc != SQLITE_OK )
{
@@ -225,18 +239,6 @@
}
else
{
- /*lei add*/
- if(!lynq_check_index(index))
- {
- return LYNQ_E_SMS_SQL_FAIL;
- }
- /*lei add*/
- if( rc )
- {
- LYVERBLOG("[%s] Can't open database: %s\n", __FUNCTION__,sqlite3_errmsg(smsDb));
- return LYNQ_E_SMS_DB_FAIL;
- }
- LYVERBLOG("[%s] Opened database successfully\n",__FUNCTION__);
/* Create SQL statement */
//sql = "SELECT * from LYNQSMS";
sprintf(sql,"DELETE from LYNQSMS WHERE ID=%d",index);
@@ -270,6 +272,7 @@
if( rc )
{
LYVERBLOG("[%s] Can't open database: %s\n", __FUNCTION__,sqlite3_errmsg(smsDb));
+ //sqlite3_free(zErrMsg);
return LYNQ_E_SMS_DB_FAIL;
}
LYVERBLOG("[%s] Opened database successfully\n",__FUNCTION__);
@@ -491,6 +494,7 @@
}
LYDBGLOG("write sms to sms db successfully");
//printf("write sms to sms db successfully\n");
+ sqlite3_close(smsDb);
return 0;
}
/*lei modify for gsw 2022/5/11*/