]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an incorrect ALWAYS() macro. Fix for ticket [e5c6268dd807fa8950] -
authordrh <drh@noemail.net>
Tue, 24 Nov 2015 02:10:52 +0000 (02:10 +0000)
committerdrh <drh@noemail.net>
Tue, 24 Nov 2015 02:10:52 +0000 (02:10 +0000)
a problem introduced in SQLite 3.9.0 and found by libFuzzer.

FossilOrigin-Name: 824ad96f72cb0c948ec98aca9d17a7e6790c575f

manifest
manifest.uuid
src/expr.c
test/distinct.test

index 7f76cef1ff2b6ded06a0da0041a89b151db3b61d..8f1d010fc67a3c34b53c0e739302564953ef8897 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\sclarifying\scomment\sto\sthe\svirtual\stable\stest\smodule\s'test8'.
-D 2015-11-24T01:17:01.246
+C Remove\san\sincorrect\sALWAYS()\smacro.\s\sFix\sfor\sticket\s[e5c6268dd807fa8950]\s-\s\na\sproblem\sintroduced\sin\sSQLite\s3.9.0\sand\sfound\sby\slibFuzzer.
+D 2015-11-24T02:10:52.306
 F Makefile.in d828db6afa6c1fa060d01e33e4674408df1942a1
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc e928e68168df69b353300ac87c10105206653a03
@@ -292,7 +292,7 @@ F src/ctime.c 509ef9c64d1321f42448f111da86400b1799218a
 F src/date.c fb1c99172017dcc8e237339132c91a21a0788584
 F src/dbstat.c ffd63fc8ba7541476ced189b95e95d7f2bc63f78
 F src/delete.c 00af9f08a15ddc5cba5962d3d3e5bf2d67b2e7da
-F src/expr.c dfccb439a2a981d71970ce3d15effeb59b258798
+F src/expr.c cb1a419508e5b27769a91e00e36e94724e7b1d51
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c 31900763094a3736a5fc887469202eb579fef2d0
 F src/func.c ecdd69ec6a1e406f04cc73324be2ebbf6354197f
@@ -579,7 +579,7 @@ F test/descidx1.test 6d03b44c8538fe0eb4924e19fba10cdd8f3c9240
 F test/descidx2.test 9f1a0c83fd57f8667c82310ca21b30a350888b5d
 F test/descidx3.test 09ddbe3f5295f482d2f8b687cf6db8bad7acd9a2
 F test/diskfull.test 106391384780753ea6896b7b4f005d10e9866b6e
-F test/distinct.test 175d49ee783febaf368192dfe7f5afbc68910230
+F test/distinct.test a1783b960ad8c15a77cd9f207be072898db1026c
 F test/distinctagg.test 1a6ef9c87a58669438fc771450d7a72577417376
 F test/e_blobbytes.test 9bea1d3e2b20f3010b04abba58f6ba172301f49f
 F test/e_blobclose.test df756753f571bc30e42e3a6cba2807576e49e716
@@ -1404,7 +1404,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 19d9f9ce691963310fa73ac5ff728ea8dea9d2b2
-R 5f2e3f4f59d38b9500a642209d9901f8
-U mistachkin
-Z 92cc12dd9fcb76285889b066a4a2f02e
+P e92f97a6794440eb9d64e21218d39cb0e297a98e
+R 67e74267bda19ceddf30801e5b6dab85
+U drh
+Z 988f4fae8dad66d5bbc6c477f18a57af
index e7ce74a97f66b4a0c11864f4bda7eaf8c5c05a76..3fce085be05a48a55a624380d389aec9e8491458 100644 (file)
@@ -1 +1 @@
-e92f97a6794440eb9d64e21218d39cb0e297a98e
\ No newline at end of file
+824ad96f72cb0c948ec98aca9d17a7e6790c575f
\ No newline at end of file
index 0255d6902f79adbe571fdf4f5a952487ef256f42..8cf018f9d44006efa2a2e44f045d71e89ab9f81b 100644 (file)
@@ -3818,7 +3818,7 @@ int sqlite3ExprCompare(Expr *pA, Expr *pB, int iTab){
     }
     return 2;
   }
-  if( pA->op!=TK_COLUMN && ALWAYS(pA->op!=TK_AGG_COLUMN) && pA->u.zToken ){
+  if( pA->op!=TK_COLUMN && pA->op!=TK_AGG_COLUMN && pA->u.zToken ){
     if( pA->op==TK_FUNCTION ){
       if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2;
     }else if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){
index 2fb90dc3e37b0de0bde0ec60f524da611ee04ed9..dac2269b0bcf2321e4b28495e73b933251707c44 100644 (file)
@@ -252,4 +252,21 @@ do_execsql_test 5.6 {
   SELECT DISTINCT x FROM t1 ORDER BY x;
 } {1 2 3 4 5 6}
 
+#-------------------------------------------------------------------------
+# 2015-11-23.  Problem discovered by Kostya Serebryany using libFuzzer
+#
+db close
+sqlite3 db :memory:
+do_execsql_test 6.1 {
+  CREATE TABLE jjj(x);
+  SELECT (SELECT 'mmm' UNION SELECT DISTINCT max(name) ORDER BY 1) 
+    FROM sqlite_master;
+} {jjj}
+do_execsql_test 6.2 {
+  CREATE TABLE nnn(x);
+  SELECT (SELECT 'mmm' UNION SELECT DISTINCT max(name) ORDER BY 1) 
+    FROM sqlite_master;
+} {mmm}
+
+
 finish_test