Jelajahi Sumber

modules_k/db_sqlite: fix memory leak in sqlops query

Seems that most other database drivers release the database
resource only at free_result time, which I some how missed.

Since we are doing a deep copy in store_result(), we can
just release the sqlite resources immediately raw_query().

Reported-by: Pedro Antonio Vico Solano <[email protected]>
Timo Teräs 13 tahun lalu
induk
melakukan
ecf95eb0ad
1 mengubah file dengan 6 tambahan dan 1 penghapusan
  1. 6 1
      modules_k/db_sqlite/dbase.c

+ 6 - 1
modules_k/db_sqlite/dbase.c

@@ -543,7 +543,12 @@ int db_sqlite_update(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _o,
 
 int db_sqlite_raw_query(const db1_con_t* _h, const str* _s, db1_res_t** _r)
 {
-	return db_do_raw_query(_h, _s, _r,
+	int rc;
+
+	rc = db_do_raw_query(_h, _s, _r,
 			       db_sqlite_submit_query,
 			       db_sqlite_store_result);
+	db_sqlite_cleanup_query(_h);
+
+	return rc;
 }