[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