]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a segfault that followed a malloc failure introduced by (6527). (CVS 6532)
authordanielk1977 <danielk1977@noemail.net>
Tue, 21 Apr 2009 17:23:04 +0000 (17:23 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Tue, 21 Apr 2009 17:23:04 +0000 (17:23 +0000)
FossilOrigin-Name: 08e71b114087cfddd36c066265982172fcb41c9a

manifest
manifest.uuid
src/where.c

index 535c93ce5a0c997f1311d62a4ab31d760e547f93..413b613cf64acfcb9bf989a00f56f26bd083d5f4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Adjust\sthe\srowhash.test\smodule\sso\sthat\sit\srecovers\sgracefully\sin\sthe\srare\nevent\sof\sa\srowid\scollision.\s(CVS\s6531)
-D 2009-04-21T17:13:38
+C Fix\sa\ssegfault\sthat\sfollowed\sa\smalloc\sfailure\sintroduced\sby\s(6527).\s(CVS\s6532)
+D 2009-04-21T17:23:05
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in fa5998fe08bd8c0fdc7f9f66cea16c0279f39da8
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -210,7 +210,7 @@ F src/vdbeblob.c e67757450ae8581a8b354d9d7e467e41502dfe38
 F src/vdbemem.c 96e57468036638c3de72e2ed8b08f308c5982053
 F src/vtab.c 6118d71c5137e20a7ac51fb5d9beb0361fbedb89
 F src/walker.c 7cdf63223c953d4343c6833e940f110281a378ee
-F src/where.c 2b580cc5eb4edd943458bac16248bc927778c3ee
+F src/where.c 894363060378c1828eccd99a36f71e2b81870f1f
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/alias.test 597662c5d777a122f9a3df0047ea5c5bd383a911
 F test/all.test 14165b3e32715b700b5f0cbf8f6e3833dda0be45
@@ -721,7 +721,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 9b30ab7199d8b51bdea8ec7f0410281527623673
-R 2145a02c40a21e7531ac4876da63949f
-U drh
-Z 212ccb12e0b16a139af67ced1d4e45da
+P 72e1680904a354811cd2956bd57769ee2482c8bb
+R 989dcd34a963ff2705fb442db350d830
+U danielk1977
+Z ceeb6f394d7e82b624a231b4a7205ad5
index b6c2b5bb496d8299801d7498d0dd6927e688b41a..df568266c17c7c5a5ea5513931887f64a6237f22 100644 (file)
@@ -1 +1 @@
-72e1680904a354811cd2956bd57769ee2482c8bb
\ No newline at end of file
+08e71b114087cfddd36c066265982172fcb41c9a
\ No newline at end of file
index 9c2fdf52a958b9b30ea269226e1b769d15bda55c..2ff86374907d6f94ab1bbf1065b5d2a29a7af978 100644 (file)
@@ -16,7 +16,7 @@
 ** so is applicable.  Because this module is responsible for selecting
 ** indices, you might also think of this module as the "query optimizer".
 **
-** $Id: where.c,v 1.383 2009/04/21 09:02:47 danielk1977 Exp $
+** $Id: where.c,v 1.384 2009/04/21 17:23:05 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 
@@ -1755,6 +1755,9 @@ static void bestVirtualIndex(
   if( pIdxInfo==0 ){
     *ppIdxInfo = pIdxInfo = allocateIndexInfo(pParse, pWC, pSrc, pOrderBy);
   }
+  if( pIdxInfo==0 ){
+    return;
+  }
 
   /* At this point, the sqlite3_index_info structure that pIdxInfo points
   ** to will have been initialized, either during the current invocation or