diff options
author | Qi.Chen@windriver.com <Qi.Chen@windriver.com> | 2019-10-16 10:05:17 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-10-29 09:08:17 +0000 |
commit | 4f5919d899adb0ad087ef3cf5229f42314dbe951 (patch) | |
tree | 77d6f1eafd3a5245aedda0042e9e2128832902d3 /meta/recipes-support/sqlite/files | |
parent | 4cecfe6e9d9e9216d9235feec25460c4011bf65f (diff) | |
download | poky-4f5919d899adb0ad087ef3cf5229f42314dbe951.tar.gz |
sqlite3: fix CVE-2019-16168
(From OE-Core rev: 948b0dd6d91eeed529c6983141ab80327fa4ae9c)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-support/sqlite/files')
-rw-r--r-- | meta/recipes-support/sqlite/files/0001-Fix-CVE-2019-16168.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/meta/recipes-support/sqlite/files/0001-Fix-CVE-2019-16168.patch b/meta/recipes-support/sqlite/files/0001-Fix-CVE-2019-16168.patch new file mode 100644 index 0000000000..7c4a65b3cd --- /dev/null +++ b/meta/recipes-support/sqlite/files/0001-Fix-CVE-2019-16168.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From fcf06b0b426e6c243d6ca2d6c6a02830717ab6a3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Tue, 15 Oct 2019 13:22:52 +0800 | ||
4 | Subject: [PATCH] Fix CVE-2019-16168 | ||
5 | |||
6 | CVE: CVE-2019-16168 | ||
7 | |||
8 | Upstream-Status: Backport [https://www.sqlite.org/src/vpatch?from=4f5b2d938194fab7&to=98357d8c1263920b] | ||
9 | |||
10 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
11 | --- | ||
12 | sqlite3.c | 5 ++++- | ||
13 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/sqlite3.c b/sqlite3.c | ||
16 | index 61bfdeb..b3e6ae2 100644 | ||
17 | --- a/sqlite3.c | ||
18 | +++ b/sqlite3.c | ||
19 | @@ -105933,7 +105933,9 @@ static void decodeIntArray( | ||
20 | if( sqlite3_strglob("unordered*", z)==0 ){ | ||
21 | pIndex->bUnordered = 1; | ||
22 | }else if( sqlite3_strglob("sz=[0-9]*", z)==0 ){ | ||
23 | - pIndex->szIdxRow = sqlite3LogEst(sqlite3Atoi(z+3)); | ||
24 | + int sz = sqlite3Atoi(z+3); | ||
25 | + if( sz<2 ) sz = 2; | ||
26 | + pIndex->szIdxRow = sqlite3LogEst(sz); | ||
27 | }else if( sqlite3_strglob("noskipscan*", z)==0 ){ | ||
28 | pIndex->noSkipScan = 1; | ||
29 | } | ||
30 | @@ -143260,6 +143262,7 @@ static int whereLoopAddBtreeIndex( | ||
31 | ** it to pNew->rRun, which is currently set to the cost of the index | ||
32 | ** seek only. Then, if this is a non-covering index, add the cost of | ||
33 | ** visiting the rows in the main table. */ | ||
34 | + assert( pSrc->pTab->szTabRow>0 ); | ||
35 | rCostIdx = pNew->nOut + 1 + (15*pProbe->szIdxRow)/pSrc->pTab->szTabRow; | ||
36 | pNew->rRun = sqlite3LogEstAdd(rLogSize, rCostIdx); | ||
37 | if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){ | ||
38 | -- | ||
39 | 2.17.1 | ||
40 | |||