]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an another OSS-Fuzz discovered assertion fault due to ALTER TABLE and
authordrh <drh@noemail.net>
Mon, 2 Nov 2020 00:40:05 +0000 (00:40 +0000)
committerdrh <drh@noemail.net>
Mon, 2 Nov 2020 00:40:05 +0000 (00:40 +0000)
strange triggers.

FossilOrigin-Name: 6646d7898ca1d2f71ec906d9613fbfc5c59c6cf05f053529e6e32ab826d1cb78

manifest
manifest.uuid
src/select.c
test/altertab3.test

index 89e33f86d4796a4fd8d81d7999ee59b6b2ad248c..bfeddea1680bba960b17141382c9074f8ef44070 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\s-tabs\scommand-line\soption\sto\sthe\sCLI.
-D 2020-10-31T18:58:37.360
+C Fix\san\sanother\sOSS-Fuzz\sdiscovered\sassertion\sfault\sdue\sto\sALTER\sTABLE\sand\nstrange\striggers.
+D 2020-11-02T00:40:05.432
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -537,7 +537,7 @@ F src/printf.c 30e92b638fac71dcd85cdea1d12ecfae354c9adee2c71e8e1ae4727cde7c91ed
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 97b91fb25d86881ff20c9ad2ad98412c6c1bb5f7d6c9bb044db250cbc9cfcd4b
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 645aa47fb8ce95e95290d4852d44cf5997c89c3e754a74c91e010459a8db7a72
+F src/select.c 507c541942d78a9af1d4680e6addf60b677d8fc6d55f0b0a047a01759f0c0386
 F src/shell.c.in c0b4aea11596235e4206d671568590f9516f6db63755e82661cb75b662e3cbf2
 F src/sqlite.h.in ff32663b457306eb88c3039868280aa39da31162ed69c4e71fa8e028684e7277
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -648,7 +648,7 @@ F test/altermalloc.test 167a47de41b5c638f5f5c6efb59784002b196fff70f98d9b4ed3cd74
 F test/altermalloc2.test fa7b1c1139ea39b8dec407cf1feb032ca8e0076bd429574969b619175ad0174b
 F test/altertab.test 6d7bbac2c4a6ef71b775094a3298fa3a92274d95034ee23157ffba92768e47e6
 F test/altertab2.test b0d62f323ca5dab42b0bc028c52e310ebdd13e655e8fac070fe622bad7852c2b
-F test/altertab3.test b1a3c15ff792eac9e3986b0bfdb787b9127ebee467b1b7953308f89f77750a3a
+F test/altertab3.test 1db384eb85b4a30b0b332842f5c596b0dc0126f7c61959be3f85ae8b1c271d9a
 F test/amatch1.test b5ae7065f042b7f4c1c922933f4700add50cdb9f
 F test/analyze.test 547bb700f903107b38611b014ca645d6b5bb819f5210d7bf39c40802aafeb7d7
 F test/analyze3.test fca2a9de0017becfdcc201647f03b1cfd5ba0e7b5b5c852936e4ec62780cde49
@@ -1883,7 +1883,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3e6af890406b58da1c4aebec4d483be7ab0fdb589ef7a4c4e987d6bde18d6b97
-R cc927b012bbfe867cc7e69040611804b
+P 7d01e84dc49074e6364267eea9fd20d46a457d2498121a0f218fbf482692392d
+R 6a2a72e7ca280d804ef00992ac63876a
 U drh
-Z c19547e30aa5c2edf92b17d7505f722e
+Z 944227b21230a6e5005de5e4069b3861
index 2ae4fbbb1ec3106d2b83e39c31d219f8e81b01bd..e7ab59ba049b38cefebf0908631ba5e2b34c0120 100644 (file)
@@ -1 +1 @@
-7d01e84dc49074e6364267eea9fd20d46a457d2498121a0f218fbf482692392d
\ No newline at end of file
+6646d7898ca1d2f71ec906d9613fbfc5c59c6cf05f053529e6e32ab826d1cb78
\ No newline at end of file
index 6d992602f80c106847edebffefb9e6bc7514c6d3..e6d1b3dd7d4b46c86275beb87aa21d6530fd948a 100644 (file)
@@ -1972,6 +1972,7 @@ int sqlite3ColumnsFromExprList(
   char *zName;                /* Column name */
   int nName;                  /* Size of name in zName[] */
   Hash ht;                    /* Hash table of column names */
+  Table *pTab;
 
   sqlite3HashInit(&ht);
   if( pEList ){
@@ -1998,11 +1999,9 @@ int sqlite3ColumnsFromExprList(
         pColExpr = pColExpr->pRight;
         assert( pColExpr!=0 );
       }
-      if( pColExpr->op==TK_COLUMN ){
+      if( pColExpr->op==TK_COLUMN && (pTab = pColExpr->y.pTab)!=0 ){
         /* For columns use the column name name */
         int iCol = pColExpr->iColumn;
-        Table *pTab = pColExpr->y.pTab;
-        assert( pTab!=0 );
         if( iCol<0 ) iCol = pTab->iPKey;
         zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid";
       }else if( pColExpr->op==TK_ID ){
index 59162c0a7ef0d3b7bda0aa5acf8dad1a847e59e9..10d9ef32e37e654e097643fa1bca5ba0665a422a 100644 (file)
@@ -634,6 +634,18 @@ do_execsql_test 26.4 {
   END}
 }
 
+# 2020-11-02 OSSFuzz 
+#
+reset_db
+do_execsql_test 26.5 {
+  CREATE TABLE t1(xx);
+  CREATE TRIGGER xx INSERT ON t1 BEGIN
+     UPDATE t1 SET xx=xx FROM(SELECT xx);
+  END;
+} {}
+do_catchsql_test 26.6 {
+  ALTER TABLE t1 RENAME TO t2;
+} {1 {error in trigger xx: ambiguous column name: xx}}
 
-finish_test
 
+finish_test