diff options
author | dan <dan@noemail.net> | 2010-10-21 15:12:44 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2010-10-21 15:12:44 +0000 |
commit | 06b5db0e3934d8a3dad7ca44257cb4f3c02b4208 (patch) | |
tree | cfbb65882b304bc2c6fa4378203369f7db4dd964 /src | |
parent | 3edd8a555d4f45e9778fe709c0be6ab3ab9c9a75 (diff) | |
download | sqlite-06b5db0e3934d8a3dad7ca44257cb4f3c02b4208.tar.gz sqlite-06b5db0e3934d8a3dad7ca44257cb4f3c02b4208.zip |
Fix some segfaults that could occur in obscure circumstances where error messages contained characters that could be mistaken for printf format specifiers.
FossilOrigin-Name: f91471e7234db490f97298b1ccb8d6c7fc45b089
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbeblob.c | 4 | ||||
-rw-r--r-- | src/vtab.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/vdbeblob.c b/src/vdbeblob.c index b2b9f0ed0..38587ee56 100644 --- a/src/vdbeblob.c +++ b/src/vdbeblob.c @@ -231,7 +231,7 @@ int sqlite3_blob_open( nAttempt++; rc = sqlite3_finalize((sqlite3_stmt *)v); sqlite3DbFree(db, zErr); - zErr = sqlite3MPrintf(db, sqlite3_errmsg(db)); + zErr = sqlite3MPrintf(db, "%s", sqlite3_errmsg(db)); v = 0; } } while( nAttempt<5 && rc==SQLITE_SCHEMA ); @@ -278,7 +278,7 @@ blob_open_out: if( v && (rc!=SQLITE_OK || db->mallocFailed) ){ sqlite3VdbeFinalize(v); } - sqlite3Error(db, rc, zErr); + sqlite3Error(db, rc, (zErr ? "%s" : 0), zErr); sqlite3DbFree(db, zErr); sqlite3StackFree(db, pParse); rc = sqlite3ApiExit(db, rc); diff --git a/src/vtab.c b/src/vtab.c index 4d0595f2b..e460ee59e 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -672,7 +672,7 @@ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ } db->pVTab = 0; }else{ - sqlite3Error(db, SQLITE_ERROR, zErr); + sqlite3Error(db, SQLITE_ERROR, (zErr ? "%s" : 0), zErr); sqlite3DbFree(db, zErr); rc = SQLITE_ERROR; } |