[Midnightbsd-cvs] src [7684] trunk/lib/libmport: fix error handler after refactor

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Aug 7 16:19:50 EDT 2016


Revision: 7684
          http://svnweb.midnightbsd.org/src/?rev=7684
Author:   laffer1
Date:     2016-08-07 16:19:49 -0400 (Sun, 07 Aug 2016)
Log Message:
-----------
fix error handler after refactor

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 20:04:33 UTC (rev 7683)
+++ trunk/lib/libmport/bundle_read_install_pkg.c	2016-08-07 20:19:49 UTC (rev 7684)
@@ -337,17 +337,17 @@
 static int
 do_actual_install(mportInstance *mport, mportBundleRead *bundle, mportPackageMeta *pkg)
 {
-	mportAssetList *alist;
+	mportAssetList *alist = NULL;
 	mportAssetListEntry *e = NULL;
     int file_total;
     int file_count = 0;
     struct archive_entry *entry;
-    char *orig_cwd;
+    char *orig_cwd = NULL;
     uid_t owner = 0; /* root */
     gid_t group = 0; /* wheel */
-    mode_t *set;
+    mode_t *set = NULL;
     mode_t newmode;
-    mode_t *dirset;
+    mode_t *dirset = NULL;
     mode_t dirnewmode;
     char *mode = NULL;
     char *mkdirp = NULL;
@@ -354,10 +354,7 @@
     struct stat sb;
     char file[FILENAME_MAX], cwd[FILENAME_MAX], dir[FILENAME_MAX];
     sqlite3_stmt *insert = NULL;
-    sqlite3 *db;
 
-    db = mport->db;
-
     /* sadly, we can't just use abs pathnames, because it will break hardlinks */
     orig_cwd = getcwd(NULL, 0);
 
@@ -377,7 +374,7 @@
 
     /* Insert the assets into the master table (We do this one by one because we want to insert file
      * assets as absolute paths. */
-    if (mport_db_prepare(db, &insert, "INSERT INTO assets (pkg, type, data, checksum, owner, grp, mode) values (%Q,?,?,?,?,?,?)", pkg->name) !=
+    if (mport_db_prepare(mport->db, &insert, "INSERT INTO assets (pkg, type, data, checksum, owner, grp, mode) values (%Q,?,?,?,?,?,?)", pkg->name) !=
         MPORT_OK)
         goto ERROR;
 
@@ -568,29 +565,29 @@
 
         /* insert this asset into the master database */
         if (sqlite3_bind_int(insert, 1, (int) e->type) != SQLITE_OK) {
-            SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+            SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
             goto ERROR;
         }
         if (e->type == ASSET_FILE || e->type == ASSET_SAMPLE || e->type == ASSET_SHELL || e->type == ASSET_FILE_OWNER_MODE) {
             /* don't put the root in the database! */
             if (sqlite3_bind_text(insert, 2, file + strlen(mport->root), -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
             if (sqlite3_bind_text(insert, 3, e->checksum, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
             if (sqlite3_bind_text(insert, 4, e->owner, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
             if (sqlite3_bind_text(insert, 5, e->group, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
             if (sqlite3_bind_text(insert, 6, e->mode, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
         } else if (e->type == ASSET_DIR || e->type == ASSET_DIRRM || e->type == ASSET_DIRRMTRY) {
@@ -601,58 +598,58 @@
 				(void) snprintf(dir, FILENAME_MAX, "%s/%s", cwd, e->data);
 
             if (sqlite3_bind_text(insert, 2, dir, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 3) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 4) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 5) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 6) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
         } else {
             if (sqlite3_bind_text(insert, 2, e->data, -1, SQLITE_STATIC) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 3) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 4) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 5) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
 
             if (sqlite3_bind_null(insert, 6) != SQLITE_OK) {
-                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+                SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
                 goto ERROR;
             }
         }
 
         if (sqlite3_step(insert) != SQLITE_DONE) {
-            SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(db));
+            SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
             goto ERROR;
         }
 

Modified: trunk/lib/libmport/db.c
===================================================================
--- trunk/lib/libmport/db.c	2016-08-07 20:04:33 UTC (rev 7683)
+++ trunk/lib/libmport/db.c	2016-08-07 20:19:49 UTC (rev 7684)
@@ -113,11 +113,12 @@
 		if (sqlcode == SQLITE_BUSY || sqlcode == SQLITE_LOCKED) {
 			sleep(1);
 			if (sqlite3_prepare_v2(db, sql, -1, stmt, NULL) != SQLITE_OK) {
-				sqlite3_free(sql);
 				err = (char *) sqlite3_errmsg(db);
 				result = MPORT_ERR_FATAL;
-				return;
 			}
+		} else if (sqlcode != SQLITE_OK) {
+			err = (char *) sqlite3_errmsg(db);
+			result = MPORT_ERR_FATAL;
 		}
 
 		sqlite3_free(sql);



More information about the Midnightbsd-cvs mailing list