Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Similar fix to the previous check-in, but this time for sqlite3_preupdate_new(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9aaff764d508cbd9823f23cdf0c51025 |
User & Date: | drh 2025-06-24 18:27:59.008 |
Context
2025-06-24
| ||
18:27 | Similar fix to the previous check-in, but this time for sqlite3_preupdate_new(). (Leaf check-in: 9aaff764d5 user: drh tags: trunk) | |
15:58 | Range check the column index on the sqlite3_preupdate_old() interface and return SQLITE_MISUSE if too large. Forum post b617e49728. (check-in: 6a5701e6c7 user: drh tags: trunk) | |
Changes
Changes to src/vdbeapi.c.
︙ | ︙ | |||
2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 | p = db->pPreUpdate; if( !p || p->op==SQLITE_DELETE ){ rc = SQLITE_MISUSE_BKPT; goto preupdate_new_out; } if( p->pPk && p->op!=SQLITE_UPDATE ){ iStore = sqlite3TableColumnToIndex(p->pPk, iIdx); }else{ iStore = sqlite3TableColumnToStorage(p->pTab, iIdx); } if( iStore>=p->pCsr->nField || iStore<0 ){ rc = SQLITE_RANGE; goto preupdate_new_out; | > > | 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 | p = db->pPreUpdate; if( !p || p->op==SQLITE_DELETE ){ rc = SQLITE_MISUSE_BKPT; goto preupdate_new_out; } if( p->pPk && p->op!=SQLITE_UPDATE ){ iStore = sqlite3TableColumnToIndex(p->pPk, iIdx); }else if( iIdx >= p->pTab->nCol ){ return SQLITE_MISUSE_BKPT; }else{ iStore = sqlite3TableColumnToStorage(p->pTab, iIdx); } if( iStore>=p->pCsr->nField || iStore<0 ){ rc = SQLITE_RANGE; goto preupdate_new_out; |
︙ | ︙ |
Changes to test/hook.test.
︙ | ︙ | |||
494 495 496 497 498 499 500 501 502 503 504 505 506 507 | column index" } for {set i 0} {$i < [db preupdate count]} {incr i} { lappend ::preupdate [db preupdate old $i] } } if {$type != "DELETE"} { for {set i 0} {$i < [db preupdate count]} {incr i} { set rc [catch { db preupdate new $i } v] lappend ::preupdate $v } } } | > > > > > | 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 | column index" } for {set i 0} {$i < [db preupdate count]} {incr i} { lappend ::preupdate [db preupdate old $i] } } if {$type != "DELETE"} { set x [catch {db preupdate new [db preupdate count]}] if {!$x} { lappend "ERROR: sqlite3_preupdate_old() accepted an out-of-bounds\ column index" } for {set i 0} {$i < [db preupdate count]} {incr i} { set rc [catch { db preupdate new $i } v] lappend ::preupdate $v } } } |
︙ | ︙ |