]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a crash that can occur following an OOM condition within a CREATE VIRTUAL TABLE... malformed-vtab-name
authordan <dan@noemail.net>
Thu, 19 Mar 2015 19:59:30 +0000 (19:59 +0000)
committerdan <dan@noemail.net>
Thu, 19 Mar 2015 19:59:30 +0000 (19:59 +0000)
FossilOrigin-Name: 9453e7da046c55715631f10f018e97a336197969

manifest
manifest.uuid
src/vdbe.c

index a1a8b5a96444d1dbdec8bc9bb01283001657aca1..0e2648fb013e7f7ebc43ed965a2ece2cc9bf5452 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\swith\screating\svirtual\stable\swith\snames\sspecified\susing\smalformed\sutf-8\swithin\sutf-16\sdatabases.
-D 2015-03-19T18:56:17.585
+C Fix\sa\scrash\sthat\scan\soccur\sfollowing\san\sOOM\scondition\swithin\sa\sCREATE\sVIRTUAL\sTABLE\sstatement\son\sa\sutf-16\sdatabase.
+D 2015-03-19T19:59:30.542
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -293,7 +293,7 @@ F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
 F src/vacuum.c 9460b9de7b2d4e34b0d374894aa6c8a0632be8ec
-F src/vdbe.c 33f8e0b1bc928bf7a38526c4e58e0404617b09b9
+F src/vdbe.c b32dc2efe94a2c31ab4584066d47af2b56391f39
 F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
 F src/vdbeInt.h bb56fd199d8af1a2c1b9639ee2f70724b4338e3a
 F src/vdbeapi.c 583d56b129dd27f12bed518270de9ebe521e6a75
@@ -1246,7 +1246,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 26d2def8a53094356008861636d66f9ae8f2448a
-R d2ae591b867dc2d251eb915bd9224363
+P 9969cff2d0553c9bfa88a437e1bb0cc4200d49d7
+R 8dbccb3b8b8000074fd25bdffb4c9d6a
 U dan
-Z 0a1bb76f793e7ed736ebaafb02806892
+Z 868f2b8fd59504f6d90032dd8002c42b
index a2cd7b4ce88ba654ea6ef09cdb99935fec3431e7..0492fcd8e89f0417fa5cbdd25a16a191f7f05254 100644 (file)
@@ -1 +1 @@
-9969cff2d0553c9bfa88a437e1bb0cc4200d49d7
\ No newline at end of file
+9453e7da046c55715631f10f018e97a336197969
\ No newline at end of file
index 00b6cb519494957d3cfa897915f375140e672f68..82c3269e73290fa088efe1125140e86df6e13420 100644 (file)
@@ -6021,7 +6021,10 @@ case OP_VCreate: {
   rc = sqlite3VdbeMemCopy(&sMem, &aMem[pOp->p2]);
   if( rc==SQLITE_OK ){
     const char *zTab = (const char*)sqlite3_value_text(&sMem);
-    rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
+    assert( zTab || db->mallocFailed );
+    if( zTab ){
+      rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
+    }
   }
   sqlite3VdbeMemRelease(&sMem);
   break;