diff options
Diffstat (limited to 'output/sqlite3/ulogd_output_SQLITE3.c')
-rw-r--r-- | output/sqlite3/ulogd_output_SQLITE3.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/output/sqlite3/ulogd_output_SQLITE3.c b/output/sqlite3/ulogd_output_SQLITE3.c index d4bd1ba..51eab78 100644 --- a/output/sqlite3/ulogd_output_SQLITE3.c +++ b/output/sqlite3/ulogd_output_SQLITE3.c @@ -104,11 +104,14 @@ add_row(struct ulogd_pluginstance *pi) ret = sqlite3_finalize(priv->p_stmt); priv->p_stmt = NULL; - if (ret == SQLITE_SCHEMA) - sqlite3_createstmt(pi); - else { + if (ret != SQLITE_SCHEMA) { ulogd_log(ULOGD_ERROR, "SQLITE3: step: %s\n", - sqlite3_errmsg(priv->dbh)); + sqlite3_errmsg(priv->dbh)); + goto err_reset; + } + if (sqlite3_createstmt(pi) < 0) { + ulogd_log(ULOGD_ERROR, + "SQLITE3: Could not create statement.\n"); goto err_reset; } } @@ -248,8 +251,8 @@ sqlite3_createstmt(struct ulogd_pluginstance *pi) sqlite3_prepare(priv->dbh, priv->stmt, -1, &priv->p_stmt, 0); if (priv->p_stmt == NULL) { ulogd_log(ULOGD_ERROR, "SQLITE3: prepare: %s\n", - sqlite3_errmsg(priv->dbh)); - return 1; + sqlite3_errmsg(priv->dbh)); + return -1; } DEBUGP("statement prepared.\n"); @@ -386,7 +389,10 @@ sqlite3_start(struct ulogd_pluginstance *pi) } /* create and prepare the actual insert statement */ - sqlite3_createstmt(pi); + if (sqlite3_createstmt(pi) < 0) { + ulogd_log(ULOGD_ERROR, "SQLITE3: Could not create statement.\n"); + return -1; + } return 0; } |