mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Correct wasm heap corruption introduced in test code added in [e144fd5c88fa4] which led to unpredictable failures.
FossilOrigin-Name: 6c1e07e3857b38e394853891a9028e88319bad4bc7b7b15078e25f430c3b1222
This commit is contained in:
@@ -1066,7 +1066,7 @@ self.sqlite3InitModule = sqlite3InitModule;
|
||||
T.assert(0 === rc);
|
||||
const stack = wasm.pstack.pointer;
|
||||
try {
|
||||
const [pCur, pHi] = wasm.pstack.allocPtr(2);
|
||||
const [pCur, pHi] = wasm.pstack.allocChunks(2,8);
|
||||
rc = capi.sqlite3_db_status(this.db, capi.SQLITE_DBSTATUS_LOOKASIDE_USED,
|
||||
pCur, pHi, 0);
|
||||
T.assert(0===rc);
|
||||
@@ -1078,19 +1078,18 @@ self.sqlite3InitModule = sqlite3InitModule;
|
||||
0, 4096, 12);
|
||||
T.assert(0 === rc);
|
||||
}
|
||||
wasm.pokePtr([pCur, pHi], 0);
|
||||
let [vCur, vHi] = wasm.peekPtr(pCur, pHi);
|
||||
wasm.poke([pCur, pHi], 0, 'i32');
|
||||
let [vCur, vHi] = wasm.peek([pCur, pHi], 'i32');
|
||||
T.assert(0===vCur).assert(0===vHi);
|
||||
rc = capi.sqlite3_status(capi.SQLITE_STATUS_MEMORY_USED,
|
||||
pCur, pHi, 0);
|
||||
[vCur, vHi] = wasm.peekPtr([pCur, pHi]);
|
||||
[vCur, vHi] = wasm.peek([pCur, pHi], 'i32');
|
||||
//console.warn("i32 vCur,vHi",vCur,vHi);
|
||||
T.assert(0 === rc).assert(vCur > 0).assert(vHi >= vCur);
|
||||
if(wasm.bigIntEnabled){
|
||||
// Again in 64-bit. Recall that pCur and pHi are allocated
|
||||
// large enough to account for this re-use.
|
||||
wasm.pokePtr([pCur, pHi], 0)
|
||||
.poke([vCur, vHi], 0, 'i64');
|
||||
wasm.poke([pCur, pHi], 0, 'i64');
|
||||
rc = capi.sqlite3_status64(capi.SQLITE_STATUS_MEMORY_USED,
|
||||
pCur, pHi, 0);
|
||||
[vCur, vHi] = wasm.peek([pCur, pHi], 'i64');
|
||||
|
Reference in New Issue
Block a user