mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601].
FossilOrigin-Name: 7090147903337864d54ecfb2cd84a3f823973167
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Rename\sa\stest\sprocedure\sin\s'speed3.test'\sto\savoid\sa\sname\scollision.
|
C Fix\sa\sproblem\sin\sinternal\sfunction\ssqlite3OpenTableAndIndices\scausing\san\soperand\sof\san\sunrelated\sVM\sinstruction\sto\sbe\soverwritten.\sFix\sfor\s[ef360601].
|
||||||
D 2016-08-26T04:32:59.825
|
D 2016-08-26T12:00:50.136
|
||||||
F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088
|
F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 5017381e4853b1472e01d5bb926be1268eba429c
|
F Makefile.msc 5017381e4853b1472e01d5bb926be1268eba429c
|
||||||
@@ -346,7 +346,7 @@ F src/global.c c45ea22aff29334f6a9ec549235ac3357c970015
|
|||||||
F src/hash.c 55b5fb474100cee0b901edaf203e26c970940f36
|
F src/hash.c 55b5fb474100cee0b901edaf203e26c970940f36
|
||||||
F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
|
F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
|
||||||
F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
|
F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
|
||||||
F src/insert.c a255eb795cf475e7a0659297144fc80f70eb4e30
|
F src/insert.c 3edb5a1bda44df13531fedfcde5fbcc2fc04c222
|
||||||
F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e
|
F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e
|
||||||
F src/loadext.c dd7a2b77902cc66c22555aef02e1a682554b7aec
|
F src/loadext.c dd7a2b77902cc66c22555aef02e1a682554b7aec
|
||||||
F src/main.c 0bfcf1a5b612dddb4dd0fd04b53ef08ace0f48ff
|
F src/main.c 0bfcf1a5b612dddb4dd0fd04b53ef08ace0f48ff
|
||||||
@@ -625,7 +625,7 @@ F test/date.test 984ac1e3e5e031386866f034006148d3972b4a65
|
|||||||
F test/dbstatus.test 73149851b3aff14fc6db478e58f9083a66422cf5
|
F test/dbstatus.test 73149851b3aff14fc6db478e58f9083a66422cf5
|
||||||
F test/dbstatus2.test e93ab03bfae6d62d4d935f20de928c19ca0ed0ab
|
F test/dbstatus2.test e93ab03bfae6d62d4d935f20de928c19ca0ed0ab
|
||||||
F test/default.test 0cb49b1c315a0d81c81d775e407f66906a2a604d
|
F test/default.test 0cb49b1c315a0d81c81d775e407f66906a2a604d
|
||||||
F test/delete.test e1bcdf8926234e27aac24b346ad83d3329ec8b6f
|
F test/delete.test acc38fca8ee4851467705b1c2cfea64cd26667e5
|
||||||
F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa
|
F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa
|
||||||
F test/delete3.test 555e84a00a99230b7d049d477a324a631126a6ab
|
F test/delete3.test 555e84a00a99230b7d049d477a324a631126a6ab
|
||||||
F test/delete4.test 21d2113217eeaacac2d99defe14fe6611615ae86
|
F test/delete4.test 21d2113217eeaacac2d99defe14fe6611615ae86
|
||||||
@@ -1511,7 +1511,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P e4aeaa2bc73b57f1ef134cc4f54e2a652a20b5c9
|
P 84de17bc688f1df2be1a34420470d1b16f8f4e56
|
||||||
R 66a24ec1ff987ca240e2459c8e68c102
|
R 02c9439418cd024199aa5b773e0f5efc
|
||||||
U mistachkin
|
U dan
|
||||||
Z c2fe0f98a34be9a6c1038d1c5b4a377d
|
Z 9ffa92187a35e8ff63e92d723d120b65
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
84de17bc688f1df2be1a34420470d1b16f8f4e56
|
7090147903337864d54ecfb2cd84a3f823973167
|
||||||
10
src/insert.c
10
src/insert.c
@@ -1781,15 +1781,15 @@ int sqlite3OpenTableAndIndices(
|
|||||||
for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
|
for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
|
||||||
int iIdxCur = iBase++;
|
int iIdxCur = iBase++;
|
||||||
assert( pIdx->pSchema==pTab->pSchema );
|
assert( pIdx->pSchema==pTab->pSchema );
|
||||||
|
if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
|
||||||
|
if( piDataCur ) *piDataCur = iIdxCur;
|
||||||
|
p5 = 0;
|
||||||
|
}
|
||||||
if( aToOpen==0 || aToOpen[i+1] ){
|
if( aToOpen==0 || aToOpen[i+1] ){
|
||||||
sqlite3VdbeAddOp3(v, op, iIdxCur, pIdx->tnum, iDb);
|
sqlite3VdbeAddOp3(v, op, iIdxCur, pIdx->tnum, iDb);
|
||||||
sqlite3VdbeSetP4KeyInfo(pParse, pIdx);
|
sqlite3VdbeSetP4KeyInfo(pParse, pIdx);
|
||||||
VdbeComment((v, "%s", pIdx->zName));
|
|
||||||
}
|
|
||||||
if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
|
|
||||||
if( piDataCur ) *piDataCur = iIdxCur;
|
|
||||||
}else{
|
|
||||||
sqlite3VdbeChangeP5(v, p5);
|
sqlite3VdbeChangeP5(v, p5);
|
||||||
|
VdbeComment((v, "%s", pIdx->zName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( iBase>pParse->nTab ) pParse->nTab = iBase;
|
if( iBase>pParse->nTab ) pParse->nTab = iBase;
|
||||||
|
|||||||
@@ -389,5 +389,19 @@ do_test delete-9.5 {
|
|||||||
set res
|
set res
|
||||||
} {1 a b 1 c d 2 a b 2 c d}
|
} {1 a b 1 c d 2 a b 2 c d}
|
||||||
|
|
||||||
|
do_execsql_test delete-10.0 {
|
||||||
|
CREATE TABLE t1(a INT UNIQUE, b INT);
|
||||||
|
INSERT INTO t1(a,b) VALUES('1','2');
|
||||||
|
SELECT * FROM t1 WHERE a='1' AND b='2';
|
||||||
|
} {1 2}
|
||||||
|
|
||||||
|
do_execsql_test delete-10.1 {
|
||||||
|
DELETE FROM t1 WHERE a='1' AND b='2';
|
||||||
|
}
|
||||||
|
|
||||||
|
do_execsql_test delete-10.2 {
|
||||||
|
SELECT * FROM t1 WHERE a='1' AND b='2';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
|||||||
Reference in New Issue
Block a user