/ Check-in [1bb17c86]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:If the amalgamation file "sqlite3.c" is generated using the SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled without that option, and then a particular syntax error could cause a memory leak, but for this fix.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1bb17c863a269ab8b28df94b9fdaac3ee70777ccd0a30300131bf67df6722052
User & Date: drh 2019-01-31 02:42:47
Context
2019-01-31
14:37
Fix another buffer overrun that could occur when quering a corrupt database using an fts5vocab table. check-in: b80119bd user: dan tags: trunk
02:42
If the amalgamation file "sqlite3.c" is generated using the SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled without that option, and then a particular syntax error could cause a memory leak, but for this fix. check-in: 1bb17c86 user: drh tags: trunk
01:39
Improvements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then use the flag to show the complete SQL text at the beginning of the parse. check-in: 507c4353 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/parse.y.

   822    822   
   823    823   /////////////////////////// The DELETE statement /////////////////////////////
   824    824   //
   825    825   %ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
   826    826   cmd ::= with DELETE FROM xfullname(X) indexed_opt(I) where_opt(W) 
   827    827           orderby_opt(O) limit_opt(L). {
   828    828     sqlite3SrcListIndexedBy(pParse, X, &I);
          829  +#ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
          830  +  sqlite3ExprListDelete(pParse->db, O); O = 0;
          831  +  sqlite3ExprDelete(pParse->db, L); L = 0;
          832  +#endif
   829    833     sqlite3DeleteFrom(pParse,X,W,O,L);
   830    834   }
   831    835   %endif
   832    836   %ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
   833    837   cmd ::= with DELETE FROM xfullname(X) indexed_opt(I) where_opt(W). {
   834    838     sqlite3SrcListIndexedBy(pParse, X, &I);
   835    839     sqlite3DeleteFrom(pParse,X,W,0,0);