| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 12c5154 commit 4ec1423
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -238388,7 +238388,7 @@ static int sessionApplyOneOp( | |||
| 238388 | 238388 | for(i=0; rc==SQLITE_OK && i<nCol; i++){ | |
| 238389 | 238389 | sqlite3_value *pOld = sessionChangesetOld(pIter, i); | |
| 238390 | 238390 | sqlite3_value *pNew = sessionChangesetNew(pIter, i); | |
| 238391 | - if( p->abPK[i] || (bPatchset==0 && pOld) ){ | ||
| 238391 | + if( pOld && (p->abPK[i] || bPatchset==0) ){ | ||
| 238392 | 238392 | rc = sessionBindValue(pUp, i*2+2, pOld); | |
| 238393 | 238393 | } | |
| 238394 | 238394 | if( rc==SQLITE_OK && pNew ){ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -496,6 +496,27 @@ test('database.applyChangeset() - wrong arguments', (t) => { | |||
| 496 | 496 | }); | |
| 497 | 497 | }); | |
| 498 | 498 | ||
| 499 | + test('database.applyChangeset() - malformed changeset returns SQLITE_CORRUPT', { | ||
| 500 | + skip: process.config.variables.node_shared_sqlite ? | ||
| 501 | + 'requires the bundled SQLite session fix' : false, | ||
| 502 | + }, (t) => { | ||
| 503 | + const database = new DatabaseSync(':memory:'); | ||
| 504 | + database.exec('CREATE TABLE t1(a INTEGER PRIMARY KEY, b, c, d)'); | ||
| 505 | + | ||
| 506 | + const changeset = Buffer.from( | ||
| 507 | + '540401000000743100177e0072286565286565', | ||
| 508 | + 'hex'); | ||
| 509 | + | ||
| 510 | + t.assert.throws(() => { | ||
| 511 | + database.applyChangeset(changeset); | ||
| 512 | + }, { | ||
| 513 | + name: 'Error', | ||
| 514 | + message: 'database disk image is malformed', | ||
| 515 | + errcode: 11, | ||
| 516 | + code: 'ERR_SQLITE_ERROR', | ||
| 517 | + }); | ||
| 518 | + }); | ||
| 519 | + | ||
| 499 | 520 | test('session.patchset()', (t) => { | |
| 500 | 521 | const database = new DatabaseSync(':memory:'); | |
| 501 | 522 | database.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)'); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments