Fix to close sqlite object if transaction fails 90/318690/1 accepted/tizen/9.0/unified/20250206.165024
authorSangYoun Kwak <sy.kwak@samsung.com>
Tue, 21 Jan 2025 11:23:16 +0000 (20:23 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Wed, 22 Jan 2025 07:28:16 +0000 (16:28 +0900)
Previously, sqlite database object is created by sqlite3_open() and it
is not closed if following transaction is failed. Thus, sqlite database
object is lost.
To solve this issue, sqlite3_close() is called for sqlite database
object if following transaction fails.

Change-Id: I05c66402a81e601f0370c6d687eb7dd297f0819c
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
src/resource-monitor/logging.c

index 0d29712024329d1ab362c3e302a216c42809e442..1debfb392820fe27ae84286ede8d79423adc87e8 100644 (file)
@@ -1561,6 +1561,7 @@ int logging_init(void *data)
        db_elem = (struct logging_db*)malloc(sizeof(struct logging_db));
        if (!db_elem) {
                _E("Out of memory!");
+               sqlite3_close(db_file);
                return RESOURCED_ERROR_OUT_OF_MEMORY;
        }
 
@@ -1568,6 +1569,7 @@ int logging_init(void *data)
        if (!(db_elem->path)) {
                _E("Out of memory!");
                free(db_elem);
+               sqlite3_close(db_file);
                return RESOURCED_ERROR_OUT_OF_MEMORY;
        }