diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2012-10-19 18:24:18 +0200 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2012-10-19 18:25:01 +0200 |
commit | 97f695d099e60121700d47512172f1d6839dfb2a (patch) | |
tree | e24f8ca703f478267e7f1306dab16ecd8dc7a551 /database/sqlite | |
parent | 493604d52b466fa7d8444582f547b229710f1dd4 (diff) | |
download | eurephia-97f695d099e60121700d47512172f1d6839dfb2a.tar.gz eurephia-97f695d099e60121700d47512172f1d6839dfb2a.tar.xz eurephia-97f695d099e60121700d47512172f1d6839dfb2a.zip |
sqlite3: Improve error handling if memory alloc fails for SQL query string
Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
(cherry picked from commit 2613675111387fb0753d31be74b5e0a362389ef8)
Diffstat (limited to 'database/sqlite')
-rw-r--r-- | database/sqlite/sqlite.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c index 0f4e0e6..a17f4b0 100644 --- a/database/sqlite/sqlite.c +++ b/database/sqlite/sqlite.c @@ -70,7 +70,7 @@ static void _sqlite_set_error(dbresult *dbres, ErrorSeverity sev, const char *qu dbres->errSeverity = sev; dbres->errMsg = strdup(errbuf); - dbres->query = strdup(query); + dbres->query = strdup_nullsafe(query); } /** @@ -327,7 +327,7 @@ void sqlite_log_error(eurephiaCTX *ctx, dbresult *dbres) { if( dbres->status != dbSUCCESS ) { eurephia_log(ctx, LOG_ERROR, 4, "SQL Error: %s", dbres->errMsg); } - DEBUG(ctx, 33, "SQL Query: %s", dbres->query); + DEBUG(ctx, 33, "SQL Query: %s", (dbres->query != NULL ? dbres->query : "(None)")); } @@ -397,6 +397,12 @@ dbresult *sqlite_query(eurephiaCTX *ctx, const char *fmt, ... ) { sql = sqlite3_vmprintf(fmt, ap); va_end(ap); + if( sql == NULL ) { + _sqlite_set_error(dbres, sevPANIC, NULL, "Could not allocate memory for SQL query string"); + goto exit; + } + + if( ctx->dbc == NULL ) { _sqlite_set_error(dbres, sevPANIC, sql, "No open database connection to perfom SQL query to"); goto exit; |