From: drh
Date: Tue, 1 Aug 2000 09:56:27 +0000 (+0000)
Subject: fix parser stack overflow (CVS 119)
X-Git-Tag: version-3.6.10~5977
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed380d8cf09d8219295013999bed2b0dac3bdcf0;p=thirdparty%2Fsqlite.git
fix parser stack overflow (CVS 119)
FossilOrigin-Name: bffca90f37a69c5bd26b719a964408e0e518a7dc
---
diff --git a/manifest b/manifest
index e5df5e6629..129fa8c22e 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C :-)\s(CVS\s118)
-D 2000-07-31T19:16:32
+C fix\sparser\sstack\soverflow\s(CVS\s119)
+D 2000-08-01T09:56:27
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 670aa9413cb2cdcded23b328a9e255c845c41a1e
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
@@ -13,7 +13,7 @@ F src/delete.c 4d491eaf61b515516749c7ed68fa3b2ee8a09065
F src/expr.c 2fa63f086707176d09092e71832f9bbdc6a8ac85
F src/insert.c f146f149ad2422a1dc3bfa7a1651a25940f98958
F src/main.c c4b6678af8326cc602f61de51d451697451fd177
-F src/parse.y 754653f073ee03749471f86ef1bca641b35887c7
+F src/parse.y 5d199034de5d29ebedb42c1c51f34db4df40cbe5
F src/select.c d382e96c2221d08367cc87976f2b574537c9de97
F src/shell.c a5eb8ee9d5f90e735900a92e7fc364a54deb2cfb
F src/sqlite.h 82ae53028e27919250f886ff9d7c4927de81978a
@@ -59,16 +59,16 @@ F www/arch.fig 4e26e9dca3c49724fc8f554c695ddea9f2413156
F www/arch.png c4d908b79065a72e7dcf19317f36d1324c550e87
F www/arch.tcl 4f6a9afecc099a27bba17b4f8cc9561abc15dc40
F www/c_interface.tcl 29593cf77025bab137b7ba64b9459eb5eb6b4873
-F www/changes.tcl 874d7b801a9370326e74cc34f119c62f361cb697
+F www/changes.tcl bfd60af0af1cd81030a14dd072fb0214f44b1470
F www/crosscompile.tcl 19734ce7f18b16ff2ed8479412abf8aca56e1dcc
F www/fileformat.tcl f3a70650e942262f8285d53097d48f0b3aa59862
-F www/index.tcl 9d89a0441491460b35b2e467e49bf65154bcd485
+F www/index.tcl 8043911df3baacc5be42c40c9bd0883602e8a63a
F www/lang.tcl 1645e9107d75709be4c6099b643db235bbe0a151
F www/mingw.tcl fc5f4ba9d336b6e8c97347cc6496d6162461ef60
F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
F www/sqlite.tcl 69781eaffb02e17aa4af28b76a2bedb19baa8e9f
F www/vdbe.tcl bcbfc33bcdd0ebad95eab31286adb9e1bc289520
-P 8fc48dd4831dbd58a0c10b043686ea52ca1db6dd
-R 34b08c8ea4884986bf1ceed39f1cdde6
+P 4132d4760f6a2cbcf853f82546987d932e76e3c1
+R 463a993a466cf480cd166cfd852b8351
U drh
-Z 13a69076e075a1729ee9466c15878585
+Z 9d9beee969b260700b91790c5774a3ef
diff --git a/manifest.uuid b/manifest.uuid
index 9c5bcb62a8..ad28fd3e93 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-4132d4760f6a2cbcf853f82546987d932e76e3c1
\ No newline at end of file
+bffca90f37a69c5bd26b719a964408e0e518a7dc
\ No newline at end of file
diff --git a/src/parse.y b/src/parse.y
index 194262ec65..80496c40dd 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -26,7 +26,7 @@
** the parser. Lemon will also generate a header file containing
** numeric codes for all of the tokens.
**
-** @(#) $Id: parse.y,v 1.24 2000/07/29 13:06:59 drh Exp $
+** @(#) $Id: parse.y,v 1.25 2000/08/01 09:56:27 drh Exp $
*/
%token_prefix TK_
%token_type {Token}
@@ -246,7 +246,7 @@ where_opt(A) ::= WHERE expr(X). {A = X;}
cmd ::= UPDATE id(X) SET setlist(Y) where_opt(Z).
{sqliteUpdate(pParse,&X,Y,Z);}
-setlist(A) ::= id(X) EQ expr(Y) COMMA setlist(Z).
+setlist(A) ::= setlist(Z) COMMA id(X) EQ expr(Y).
{A = sqliteExprListAppend(Z,Y,&X);}
setlist(A) ::= id(X) EQ expr(Y). {A = sqliteExprListAppend(0,Y,&X);}
diff --git a/www/changes.tcl b/www/changes.tcl
index d2dd080272..012447ec17 100644
--- a/www/changes.tcl
+++ b/www/changes.tcl
@@ -17,6 +17,11 @@ proc chng {date desc} {
puts "
"
}
+chng {2000 Aug 1} {
+The parser's stack was overflowing on a very long UPDATE statement.
+ This is now fixed.
+}
+
chng {2000 July 31} {
Finish the VDBE tutorial.
Added documentation on compiling to WindowsNT.
diff --git a/www/index.tcl b/www/index.tcl
index 4895783b7b..5dc4f6fd1d 100644
--- a/www/index.tcl
+++ b/www/index.tcl
@@ -1,7 +1,7 @@
#
# Run this TCL script to generate HTML for the index.html file.
#
-set rcsid {$Id: index.tcl,v 1.21 2000/07/31 19:16:32 drh Exp $}
+set rcsid {$Id: index.tcl,v 1.22 2000/08/01 09:56:27 drh Exp $}
puts {
SQLite: An SQL Database Engine Built Atop GDBM
@@ -59,8 +59,7 @@ the GNU
Readline library
A Tcl-based test suite provides near 100% code coverage
7500+ lines of C code. No external dependencies other than GDBM.
-Built and tested under Linux, HPUX, and WinNT.
-Should work under any Unix or Win95/98/2000.
+Built and tested under Linux, HPUX, and WinNT.