]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure WhereClause objects are fully initialized before use when
authordrh <drh@noemail.net>
Fri, 19 Feb 2016 14:10:44 +0000 (14:10 +0000)
committerdrh <drh@noemail.net>
Fri, 19 Feb 2016 14:10:44 +0000 (14:10 +0000)
planning OR queries.

FossilOrigin-Name: 162053021795ff40c447498a76de4d31d58aa808

manifest
manifest.uuid
src/whereexpr.c

index af30b2d66575abffcf3197289f30b76a5a014ea2..74555d9a753e5501989d9f750c74ce0d7fd750db 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\s(harmless)\scompiler\swarnings\sin\ssome\sof\sthe\sTCL-based\stest\scode.
-D 2016-02-19T13:29:52.247
+C Make\ssure\sWhereClause\sobjects\sare\sfully\sinitialized\sbefore\suse\swhen\nplanning\sOR\squeries.
+D 2016-02-19T14:10:44.243
 F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 30f075dc4f27a07abb76088946b2944178d85347
@@ -431,7 +431,7 @@ F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
 F src/where.c 5b67fb8035ae4697cf721db095f800ef8dff5f56
 F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a
 F src/wherecode.c 791a784bbf8749d560fdb0b990b607bc4f44a38d
-F src/whereexpr.c de117970b29471177a6901d60ad83a194671dc03
+F src/whereexpr.c fb87944b1254234e5bba671aaf6dee476241506a
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@ -1428,7 +1428,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ba9c6827d0890aaed9168c221fefbdbe89f4f9d3
-R b3eefefd48eaf4c05a027f12e3577322
+P 7c26d2b47025edaa289bd4a383b5c1536482ec11
+R 85b43af389af1eb3a02fa6f3878342fe
 U drh
-Z ddb549605aed0cf283117ce1e762d390
+Z 20f7de88f5ee5fb441b8422adb035c25
index a7ec0c0aec80786d4649c3f8fa5262b7c0239387..c4c0293ebc2679e58edb87a6b6ffc2e06115b911 100644 (file)
@@ -1 +1 @@
-7c26d2b47025edaa289bd4a383b5c1536482ec11
\ No newline at end of file
+162053021795ff40c447498a76de4d31d58aa808
\ No newline at end of file
index c84d2f230a51558db82944a1099f0b2c04346401..0ad1f6a0dc98fbfe17cd213d422f213f4cc652ae 100644 (file)
@@ -533,6 +533,7 @@ static void exprAnalyzeOrTerm(
   if( pOrInfo==0 ) return;
   pTerm->wtFlags |= TERM_ORINFO;
   pOrWc = &pOrInfo->wc;
+  memset(pOrWc->aStatic, 0, sizeof(pOrWc->aStatic));
   sqlite3WhereClauseInit(pOrWc, pWInfo);
   sqlite3WhereSplit(pOrWc, pExpr, TK_OR);
   sqlite3WhereExprAnalyze(pSrc, pOrWc);
@@ -559,6 +560,7 @@ static void exprAnalyzeOrTerm(
         pOrTerm->wtFlags |= TERM_ANDINFO;
         pOrTerm->eOperator = WO_AND;
         pAndWC = &pAndInfo->wc;
+        memset(pAndWC->aStatic, 0, sizeof(pAndWC->aStatic));
         sqlite3WhereClauseInit(pAndWC, pWC->pWInfo);
         sqlite3WhereSplit(pAndWC, pOrTerm->pExpr, TK_AND);
         sqlite3WhereExprAnalyze(pSrc, pAndWC);