1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Fix a use-after-free error in ioerr.test caused by an error in test code.

FossilOrigin-Name: 1594056aab068b9fae82f6b885828c7127d9bedcc37c4340486e32791bc87c7a
This commit is contained in:
dan
2021-07-14 21:18:31 +00:00
parent acae2b485e
commit 20235e56f7
3 changed files with 25 additions and 23 deletions

View File

@ -1,5 +1,5 @@
C Enhance\scomments\spertaining\sto\sthe\sinterface\slinkage\s/\scalling\sconvention\smacros.
D 2021-07-13T22:49:02.204
C Fix\sa\suse-after-free\serror\sin\sioerr.test\scaused\sby\san\serror\sin\stest\scode.
D 2021-07-14T21:18:31.520
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -1454,7 +1454,7 @@ F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30
F test/temptable2.test d2940417496e2b9548e01d09990763fbe88c316504033256d51493e1f1a5ce6a
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
F test/tester.tcl 19d2a19a6dd55a2b4e2b943963959a05a2c088495dd5f5274b04e0494ce86d66
F test/tester.tcl 0b7957eb669371250008a5e1fef5902257905fd6d560e8834be1ac4a0620063a
F test/thread001.test b61a29dd87cf669f5f6ac96124a7c97d71b0c80d9012746072055877055cf9ef
F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
@ -1920,7 +1920,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 9a84321229ad499ee0f7c85732c2728afb4476c72073a510401a559dda9be38f
R 3789b43d6e6200974e3100b41a3c444f
U mistachkin
Z eb61d76fb75de1f468d1b3d6692793bb
P c378e99250fe06fae8ca40c62185b607f004d6806e07dbb9f964dd849b4e55f8
R 5dc9e7510bb681a9844c30d96bdfacf1
U dan
Z ab55d4571a2b3927d12f63db9cd8ac86

View File

@ -1 +1 @@
c378e99250fe06fae8ca40c62185b607f004d6806e07dbb9f964dd849b4e55f8
1594056aab068b9fae82f6b885828c7127d9bedcc37c4340486e32791bc87c7a

View File

@ -1904,21 +1904,23 @@ proc do_ioerr_test {testname args} {
set ::sqlite_io_error_hardhit 0
set r [catch $::ioerrorbody msg]
set ::errseen $r
set rc [sqlite3_errcode $::DB]
if {$::ioerropts(-erc)} {
# If we are in extended result code mode, make sure all of the
# IOERRs we get back really do have their extended code values.
# If an extended result code is returned, the sqlite3_errcode
# TCLcommand will return a string of the form: SQLITE_IOERR+nnnn
# where nnnn is a number
if {[regexp {^SQLITE_IOERR} $rc] && ![regexp {IOERR\+\d} $rc]} {
return $rc
}
} else {
# If we are not in extended result code mode, make sure no
# extended error codes are returned.
if {[regexp {\+\d} $rc]} {
return $rc
if {[info commands db]!=""} {
set rc [sqlite3_errcode db]
if {$::ioerropts(-erc)} {
# If we are in extended result code mode, make sure all of the
# IOERRs we get back really do have their extended code values.
# If an extended result code is returned, the sqlite3_errcode
# TCLcommand will return a string of the form: SQLITE_IOERR+nnnn
# where nnnn is a number
if {[regexp {^SQLITE_IOERR} $rc] && ![regexp {IOERR\+\d} $rc]} {
return $rc
}
} else {
# If we are not in extended result code mode, make sure no
# extended error codes are returned.
if {[regexp {\+\d} $rc]} {
return $rc
}
}
}
# The test repeats as long as $::go is non-zero. $::go starts out