Make benign any malloc failures inside the sqlite3_file_control() call within

PRAGMA parsing.  Add a couple simple tests for SQLITE_FCNTL_PRAGMA.

FossilOrigin-Name: a1f29fa653b788f563967f55c3d20e64cbe3f549
This commit is contained in:
drh 2012-02-22 18:21:20 +00:00
parent 3fa9730273
commit e4d25e9cfb
4 changed files with 18 additions and 14 deletions

View File

@ -1,5 +1,5 @@
C Change\sthe\sSQLITE_FCNTL_PRAGMA\sfile-control\sso\sthat\sit\scan\sreturn\sa\sstring\nvalue.
D 2012-02-22T16:58:36.697
C Make\sbenign\sany\smalloc\sfailures\sinside\sthe\ssqlite3_file_control()\scall\swithin\nPRAGMA\sparsing.\s\sAdd\sa\scouple\ssimple\stests\sfor\sSQLITE_FCNTL_PRAGMA.
D 2012-02-22T18:21:20.823
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -174,7 +174,7 @@ F src/parse.y 1ddd71ae55f4b7cbb2672526ea4de023de0f519e
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c
F src/pcache1.c b30b1c35908346ecc43d8d9d17f2ddf6817f8f60
F src/pragma.c 6838f56b049840d015fc9b335ab4118479bdaac9
F src/pragma.c c452bbbd2afc48e80a42adaba559bd63e998ea17
F src/prepare.c ec4989f7f480544bdc4192fe663470d2a2d7d61e
F src/printf.c 7ffb4ebb8b341f67e049695ba031da717b3d2699
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
@ -275,7 +275,7 @@ F test/async2.test c0a9bd20816d7d6a2ceca7b8c03d3d69c28ffb8b
F test/async3.test d73a062002376d7edc1fe3edff493edbec1fc2f7
F test/async4.test 1787e3952128aa10238bf39945126de7ca23685a
F test/async5.test 0dd8701bd588bf6e70c2557a22ae3f22b2567b4c
F test/attach.test 064911a24b6692759c661b981ed953c5fd9f441a
F test/attach.test 80762134ca101a79dbe3dda5285d7897639057a7
F test/attach2.test e54436ed956d3d88bdee61221da59bf3935a0966
F test/attach3.test d89ccfe4fe6e2b5e368d480fcdfe4b496c54cf4e
F test/attach4.test 53bf502f17647c6d6c5add46dda6bac8b6f4665c
@ -990,7 +990,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
P 5be07904baf6e5b8b99ca6f4bb6ddec973e59cd4
R f8a789f52fcbc32c2be7b7547e20bad5
P fd8d7440277b17f57a6dc0a210f42adf1fa2dcd2
R 77f865c04d434abb001a6242927d5d25
U drh
Z 2d0e9a9b9d36c2e692d7eed74ee06028
Z d262af2f28e1a265375911629e3a952e

View File

@ -1 +1 @@
fd8d7440277b17f57a6dc0a210f42adf1fa2dcd2
a1f29fa653b788f563967f55c3d20e64cbe3f549

View File

@ -357,7 +357,9 @@ void sqlite3Pragma(
aFcntl[1] = zLeft;
aFcntl[2] = zRight;
aFcntl[3] = 0;
sqlite3BeginBenignMalloc();
rc = sqlite3_file_control(db, zDb, SQLITE_FCNTL_PRAGMA, (void*)aFcntl);
sqlite3EndBenignMalloc();
if( rc==SQLITE_OK ){
if( aFcntl[0] ){
int mem = ++pParse->nMem;

View File

@ -273,12 +273,14 @@ ifcapable schema_pragmas {
if {[regexp unix [file_control_vfsname db]]} {
do_test attach-1.30.1 {
file tail [db eval {PRAGMA main.filename}]
} {test.db}
do_test attach-1.30.2 {
db eval {PRAGMA temp.filename}
} {}
ifcapable debug {
do_test attach-1.30.1 {
file tail [db eval {PRAGMA main.filename}]
} {test.db}
do_test attach-1.30.2 {
db eval {PRAGMA temp.filename}
} {}
}
}
ifcapable {trigger} { # Only do the following tests if triggers are enabled