From: danielk1977 Date: Tue, 21 Apr 2009 17:23:04 +0000 (+0000) Subject: Fix a segfault that followed a malloc failure introduced by (6527). (CVS 6532) X-Git-Tag: version-3.6.15~218 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=732dc5526bafbf7962024c76bd1f677754d1f43b;p=thirdparty%2Fsqlite.git Fix a segfault that followed a malloc failure introduced by (6527). (CVS 6532) FossilOrigin-Name: 08e71b114087cfddd36c066265982172fcb41c9a --- diff --git a/manifest b/manifest index 535c93ce5a..413b613cf6 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index b6c2b5bb49..df568266c1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -72e1680904a354811cd2956bd57769ee2482c8bb \ No newline at end of file +08e71b114087cfddd36c066265982172fcb41c9a \ No newline at end of file diff --git a/src/where.c b/src/where.c index 9c2fdf52a9..2ff8637490 100644 --- a/src/where.c +++ b/src/where.c @@ -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