aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeblob.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-10-21 15:12:44 +0000
committerdan <dan@noemail.net>2010-10-21 15:12:44 +0000
commit06b5db0e3934d8a3dad7ca44257cb4f3c02b4208 (patch)
treecfbb65882b304bc2c6fa4378203369f7db4dd964 /src/vdbeblob.c
parent3edd8a555d4f45e9778fe709c0be6ab3ab9c9a75 (diff)
downloadsqlite-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/vdbeblob.c')
-rw-r--r--src/vdbeblob.c4
1 files changed, 2 insertions, 2 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);