]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Manually copy over the rebustness fixes from the apple-osx branch.
authordrh <drh@noemail.net>
Wed, 20 Jan 2010 01:20:56 +0000 (01:20 +0000)
committerdrh <drh@noemail.net>
Wed, 20 Jan 2010 01:20:56 +0000 (01:20 +0000)
FossilOrigin-Name: 095c74ea6260096f6a600fdc0edccf7ea24aace4

manifest
manifest.uuid
src/legacy.c
src/vdbeapi.c
src/vdbeaux.c

index bf929028bffb59c7bb78c69f4f5a2e5f6025ea6e..afde3c14ac41f9782eaf4c6e975d8e27a6a3fa14 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,8 @@
-C Fix\sa\sproblem\swith\sthe\sCLI\swhere\snot\sall\sSQL\scommands\swere\sbeing\sechoed.\s\s\nAdded\stests\sof\ssame\sto\stools/shell2.test.\s\sTicket\s[eb620916be].
-D 2010-01-18T18:17:10
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+C Manually\scopy\sover\sthe\srebustness\sfixes\sfrom\sthe\sapple-osx\sbranch.
+D 2010-01-20T01:20:56
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -126,7 +129,7 @@ F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
 F src/insert.c 11eeb4f2e5d57b7c106f0c28eea8d0dd896dfd70
 F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
-F src/legacy.c 9304428e71b1d622b764913e1432e69156814755
+F src/legacy.c 16f385490f377c2c80a6c7357391d499087defed
 F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
 F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581
 F src/main.c a0f6dfbdd79e01baf75ad62bdbfdeae9e560eb96
@@ -212,8 +215,8 @@ F src/vacuum.c 28ee5a4963d16cf2477075d85966c0f461cd79de
 F src/vdbe.c b0c18b5c5ab4745a09b8f164e5db36413d98872e
 F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2
 F src/vdbeInt.h e276691b6835da5c0008cc5beaaecedcd7bdba8e
-F src/vdbeapi.c fc3787eb2f5487d4cc3444de42d56f2e39d311f5
-F src/vdbeaux.c 2e4a421bd3771ecd3b6c9a1c7abc7270a787a01b
+F src/vdbeapi.c 1dc9dce4b2f5fbcde70e75b08ea1e657b5aee41b
+F src/vdbeaux.c 8f30e619a8077ee516fa1494fa603550fa951726
 F src/vdbeblob.c 84f924700a7a889152aeebef77ca5f4e3875ffb4
 F src/vdbemem.c 1ce5005ee4a1ee25ef677abdcaef1259261cc252
 F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2
@@ -785,7 +788,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 34f6854685f00158bc536dd53ac5bc20e19fe071
-R 33c261ff7c30e0ad7a1793cafe971c5c
-U shaneh
-Z 79aeb636bb9c2f44057691bade01f4e8
+P 7080ae3bc3828168483ac23d5b8976d67ea5089e
+R 3250e1f1cb98525c679e43949f6887ba
+U drh
+Z 80303b25f3b40a711abf1fdd5fde6c71
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQFLVlp7oxKgR168RlERArgqAJsFnDPDckfZNwKw0qwzXYLaFTwlQwCdEXTk
+6yaX+yx7Uj9A+mdhdwAWsf8=
+=IqnZ
+-----END PGP SIGNATURE-----
index b7927aa7f717e54dd72c10dc59df22644a98e86a..15caf1b41a9b31d93aba3b0a5a42a05dcca324a9 100644 (file)
@@ -1 +1 @@
-7080ae3bc3828168483ac23d5b8976d67ea5089e
\ No newline at end of file
+095c74ea6260096f6a600fdc0edccf7ea24aace4
\ No newline at end of file
index d432d299fc9f898395166671a5259966477ef3bc..871e15863c6bd7b12c4b377e706b9909286977ef 100644 (file)
@@ -41,6 +41,7 @@ int sqlite3_exec(
   int nRetry = 0;             /* Number of retry attempts */
   int callbackIsInit;         /* True if callback data is initialized */
 
+  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE;
   if( zSql==0 ) zSql = "";
 
   sqlite3_mutex_enter(db->mutex);
index 428a3230e389fa90ad6841258cfe03078b3b4347..6f827ec6e009a2109166e0c3a33e2fcf815c703d 100644 (file)
@@ -47,6 +47,7 @@ int sqlite3_finalize(sqlite3_stmt *pStmt){
   }else{
     Vdbe *v = (Vdbe*)pStmt;
     sqlite3 *db = v->db;
+    if( db==0 ) return SQLITE_MISUSE;
 #if SQLITE_THREADSAFE
     sqlite3_mutex *mutex = v->db->mutex;
 #endif
@@ -398,9 +399,9 @@ end_of_step:
 */
 int sqlite3_step(sqlite3_stmt *pStmt){
   int rc = SQLITE_MISUSE;
-  if( pStmt ){
+  Vdbe *v = (Vdbe*)pStmt;
+  if( v && (v->db)!=0 ){
     int cnt = 0;
-    Vdbe *v = (Vdbe*)pStmt;
     sqlite3 *db = v->db;
     sqlite3_mutex_enter(db->mutex);
     while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
index d7c162524216db3522e9227f22a6f422cbfd2e41..c8cf4af854b8e4ce486572461a57e8b9818f54ab 100644 (file)
@@ -66,7 +66,7 @@ void sqlite3VdbeSetSql(Vdbe *p, const char *z, int n, int isPrepareV2){
 */
 const char *sqlite3_sql(sqlite3_stmt *pStmt){
   Vdbe *p = (Vdbe *)pStmt;
-  return (p->isPrepareV2 ? p->zSql : 0);
+  return (p && p->isPrepareV2) ? p->zSql : 0;
 }
 
 /*
@@ -2336,6 +2336,7 @@ void sqlite3VdbeDelete(Vdbe *p){
   sqlite3DbFree(db, p->zSql);
   p->magic = VDBE_MAGIC_DEAD;
   sqlite3DbFree(db, p->pFree);
+  p->db = 0;
   sqlite3DbFree(db, p);
 }