[Midnightbsd-cvs] src [7683] trunk/lib/libmport: fix a double free and add retry code on a locked database

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Aug 7 16:04:33 EDT 2016


Revision: 7683
          http://svnweb.midnightbsd.org/src/?rev=7683
Author:   laffer1
Date:     2016-08-07 16:04:33 -0400 (Sun, 07 Aug 2016)
Log Message:
-----------
fix a double free and add retry code on a locked database

Modified Paths:
--------------
    trunk/lib/libmport/bundle_read_install_pkg.c
    trunk/lib/libmport/db.c

Modified: trunk/lib/libmport/bundle_read_install_pkg.c
===================================================================
--- trunk/lib/libmport/bundle_read_install_pkg.c	2016-08-07 15:59:19 UTC (rev 7682)
+++ trunk/lib/libmport/bundle_read_install_pkg.c	2016-08-07 20:04:33 UTC (rev 7683)
@@ -272,6 +272,11 @@
 
 			int ret = sqlite3_step(stmt);
 
+			if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
+				sleep(1);
+				ret = sqlite3_step(stmt);
+			}
+
 			if (ret == SQLITE_DONE)
 				break;
 

Modified: trunk/lib/libmport/db.c
===================================================================
--- trunk/lib/libmport/db.c	2016-08-07 15:59:19 UTC (rev 7682)
+++ trunk/lib/libmport/db.c	2016-08-07 20:04:33 UTC (rev 7683)
@@ -69,12 +69,10 @@
 		if (sqlcode == SQLITE_BUSY || sqlcode == SQLITE_LOCKED) {
 			sleep(1);
 			if (sqlite3_exec(db, sql, 0, 0, 0) != SQLITE_OK) {
-				sqlite3_free(sql);
 				err = (char *) sqlite3_errmsg(db);
 				result = MPORT_ERR_FATAL;
 			}
 		} else if (sqlcode != SQLITE_OK) {
-			sqlite3_free(sql);
 			err = (char *) sqlite3_errmsg(db);
 			result = MPORT_ERR_FATAL;
 		}



More information about the Midnightbsd-cvs mailing list