From 45667c125ab66642489b4c156e1abd694296359a Mon Sep 17 00:00:00 2001 From: Ondrej Dubaj Date: Jul 09 2019 08:31:03 +0000 Subject: Fixed out of bounds heap read in function rtreenode() Enhance the rtreenode() function of rtree (used for testing) so that it uses the newer sqlite3_str object for better performance and improved error reporting. Resolves: #1719121 --- diff --git a/sqlite-3.26.0-out-of-bounds-read.patch b/sqlite-3.26.0-out-of-bounds-read.patch new file mode 100644 index 0000000..99f47b9 --- /dev/null +++ b/sqlite-3.26.0-out-of-bounds-read.patch @@ -0,0 +1,85 @@ +From 01ecf717c040cbcd6c9ba1ae6b70d27220043791 Mon Sep 17 00:00:00 2001 +From: SQLite Maintainers +Date: Tue, 9 Jul 2019 10:19:25 +0200 +Subject: [PATCH] Enhance the rtreenode() function of rtree (used for testing) +so that it uses the newer sqlite3_str object for better performance and +improved error reporting. + +Resolves: #1719121 +--- + ext/rtree/rtree.c | 35 ++++++++++++++++------------------- + 1 file changed, 16 insertions(+), 19 deletions(-) + +diff --git a/ext/rtree/rtree.c b/ext/rtree/rtree.c +index 4b044cb..0043791 100644 +--- a/ext/rtree/rtree.c ++++ b/ext/rtree/rtree.c +@@ -3711,49 +3711,46 @@ rtreeInit_fail: + ** *2 coordinates. + */ + static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){ +- char *zText = 0; + RtreeNode node; + Rtree tree; + int ii; ++ int nData; ++ int errCode; ++ sqlite3_str *pOut; + + UNUSED_PARAMETER(nArg); + memset(&node, 0, sizeof(RtreeNode)); + memset(&tree, 0, sizeof(Rtree)); + tree.nDim = (u8)sqlite3_value_int(apArg[0]); ++ if( tree.nDim<1 || tree.nDim>5 ) return; + tree.nDim2 = tree.nDim*2; + tree.nBytesPerCell = 8 + 8 * tree.nDim; + node.zData = (u8 *)sqlite3_value_blob(apArg[1]); ++ nData = sqlite3_value_bytes(apArg[1]); ++ if( nData<4 ) return; ++ if( nData0 ) sqlite3_str_append(pOut, " ", 1); ++ sqlite3_str_appendf(pOut, "{%lld", cell.iRowid); + for(jj=0; jj - 3.26.0-4 +- Fixed CVE-2019-8457 (#1719121) + * Thu May 16 2019 Petr Kubat - 3.26.0-3 - Fixed CVE-2019-9937 (#1692358) - Fixed CVE-2019-9936 (#1692366)