Enhancements to the secure_delete pragma to make it easier to use.
FossilOrigin-Name: 2bb38bb96ff6b9fb91dd1cf214041cf113ac5508
This commit is contained in:
parent
5b47efa662
commit
af034ed685
23
manifest
23
manifest
@ -1,8 +1,8 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
C All\sthe\ssecure-delete\ssetting\sto\sbe\schanged\sat\srun-time\susing\sa\spragma.\nThe\sSQLITE_SECURE_DELETE\scompile-time\soption\sdetermines\sthe\sdefault\ssetting.
|
||||
D 2010-02-12T18:18:39
|
||||
C Enhancements\sto\sthe\ssecure_delete\spragma\sto\smake\sit\seasier\sto\suse.
|
||||
D 2010-02-12T19:46:27
|
||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@ -106,12 +106,12 @@ F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc
|
||||
F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad
|
||||
F src/alter.c 92ba938565d7cc6bfe92aad6cc90c00800ff21d3
|
||||
F src/analyze.c 55155f05ee9ab4ce33b7a4d19c449053f8935200
|
||||
F src/attach.c 0ba38b38252a34bb9721de35514a1d14058a8e49
|
||||
F src/attach.c a6b5e97c84c46c731aad064c413e40e12cb718b7
|
||||
F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
|
||||
F src/backup.c 744e98359dfc79fed43e8dec911e33e108b06aae
|
||||
F src/bitvec.c 06ad2c36a9c3819c0b9cbffec7b15f58d5d834e0
|
||||
F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
|
||||
F src/btree.c 25078c9bba2ed69f1c929e19fe71659d55511f99
|
||||
F src/btree.c c9ee3c30fbf21ebb4f45c244bd47d7999e6f2704
|
||||
F src/btree.h 0e193b7e90f1d78b79c79474040e3d66a553a4fa
|
||||
F src/btreeInt.h 71ed5e7f009caf17b7dc304350b3cb64b5970135
|
||||
F src/build.c 81412e0f3cabd0cc7a71a1644c46d9ccad9613f5
|
||||
@ -159,7 +159,7 @@ F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
|
||||
F src/pcache.c 815bcb3cf0e14b23212efd3f4981f667a5fd633e
|
||||
F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
|
||||
F src/pcache1.c 2bb2261190b42a348038f5b1c285c8cef415fcc8
|
||||
F src/pragma.c c0591d6f77be6b281f5cb68031c9aab0a7bf50a4
|
||||
F src/pragma.c 55cfa9daa145075cdb928dfce53e55665d6ad709
|
||||
F src/prepare.c d4cd38ccfb51f1424d0e61d4878a810b7e1ebb60
|
||||
F src/printf.c 2c2702dc4955394dae554b7c45f45656eb42de7f
|
||||
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
|
||||
@ -550,6 +550,7 @@ F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd
|
||||
F test/savepoint6.test 2df1d093e59e78d688c64eb20e0457aaea7d08f9
|
||||
F test/schema.test 23a2909d2b1f8494d28d355c1254f075b0af8ffc
|
||||
F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5
|
||||
F test/securedel.test 328d2921c0ca49bdd3352e516b0377fc07143254
|
||||
F test/select1.test f67ca2dfc05df41c7b86eb32ca409b427a5f43b0
|
||||
F test/select2.test 9735da20ccd41e42bf2b4c19fd939141b591adae
|
||||
F test/select3.test 2ce595f8fb8e2ac10071d3b4e424cadd4634a054
|
||||
@ -789,14 +790,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
P 14ab536a96f81595ab8c3dcd4b72075f1a827c8b
|
||||
R 8c56002353eb719f638bc73e0f805265
|
||||
P f72f8a870a0fc98a9f2b564ffafe7946bbce506e
|
||||
R b61a1284585a029b8ec102ac4156fb15
|
||||
U drh
|
||||
Z 9e25690ce3b9770e58f6c8fa7d210a05
|
||||
Z d9b19f603d580b3226157728109cbbd5
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFLdZuDoxKgR168RlERAnGTAKCGoy1G06Shul4IKI+EICeUa82BwACeLCUf
|
||||
+FBQFqONYf4Ztpufoz0uTZE=
|
||||
=Tyh+
|
||||
iD8DBQFLdbAVoxKgR168RlERAj5YAJ42YouMVbChw0/Wmuc1J2A6U9XZigCeJm/S
|
||||
8JFH6+GHy+lsobZdTvVyj/I=
|
||||
=Aq2n
|
||||
-----END PGP SIGNATURE-----
|
||||
|
@ -1 +1 @@
|
||||
f72f8a870a0fc98a9f2b564ffafe7946bbce506e
|
||||
2bb38bb96ff6b9fb91dd1cf214041cf113ac5508
|
@ -144,6 +144,8 @@ static void attachFunc(
|
||||
pPager = sqlite3BtreePager(aNew->pBt);
|
||||
sqlite3PagerLockingMode(pPager, db->dfltLockMode);
|
||||
sqlite3PagerJournalMode(pPager, db->dfltJournalMode);
|
||||
sqlite3BtreeSecureDelete(aNew->pBt,
|
||||
sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
|
||||
}
|
||||
aNew->zName = sqlite3DbStrDup(db, zName);
|
||||
aNew->safety_level = 3;
|
||||
|
@ -2172,6 +2172,7 @@ int sqlite3BtreeMaxPageCount(Btree *p, int mxPage){
|
||||
*/
|
||||
int sqlite3BtreeSecureDelete(Btree *p, int newFlag){
|
||||
int b;
|
||||
if( p==0 ) return 0;
|
||||
sqlite3BtreeEnter(p);
|
||||
if( newFlag>=0 ){
|
||||
p->pBt->secureDelete = (newFlag!=0) ? 1 : 0;
|
||||
|
@ -431,6 +431,12 @@ void sqlite3Pragma(
|
||||
if( zRight ){
|
||||
b = getBoolean(zRight);
|
||||
}
|
||||
if( pId2->n==0 && b>=0 ){
|
||||
int ii;
|
||||
for(ii=0; ii<db->nDb; ii++){
|
||||
sqlite3BtreeSecureDelete(db->aDb[ii].pBt, b);
|
||||
}
|
||||
}
|
||||
b = sqlite3BtreeSecureDelete(pBt, b);
|
||||
returnSingleInt(pParse, "secure_delete", b);
|
||||
}else
|
||||
|
73
test/securedel.test
Normal file
73
test/securedel.test
Normal file
@ -0,0 +1,73 @@
|
||||
# 2010 January 12
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#*************************************************************************
|
||||
#
|
||||
# Tests for the secure_delete pragma.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
|
||||
unset -nocomplain DEFAULT_SECDEL
|
||||
set DEFAULT_SECDEL 0
|
||||
ifcapable secure_delete {
|
||||
set DEFAULT_SECDEL 1
|
||||
}
|
||||
|
||||
|
||||
do_test securedel-1.0 {
|
||||
db eval {PRAGMA secure_delete;}
|
||||
} $DEFAULT_SECDEL
|
||||
|
||||
file delete -force test2.db test2.db-journal
|
||||
do_test securedel-1.1 {
|
||||
db eval {
|
||||
ATTACH 'test2.db' AS db2;
|
||||
PRAGMA main.secure_delete=ON;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} [list 1 $DEFAULT_SECDEL]
|
||||
do_test securedel-1.2 {
|
||||
db eval {
|
||||
PRAGMA main.secure_delete=OFF;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} [list 0 $DEFAULT_SECDEL]
|
||||
do_test securedel-1.3 {
|
||||
db eval {
|
||||
PRAGMA secure_delete=OFF;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} {0 0}
|
||||
do_test securedel-1.4 {
|
||||
breakpoint
|
||||
db eval {
|
||||
PRAGMA secure_delete=ON;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} {1 1}
|
||||
|
||||
do_test securedel-2.1 {
|
||||
db eval {
|
||||
DETACH db2;
|
||||
ATTACH 'test2.db' AS db2;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} 1
|
||||
do_test securedel-2.2 {
|
||||
db eval {
|
||||
DETACH db2;
|
||||
PRAGMA main.secure_delete=OFF;
|
||||
ATTACH 'test2.db' AS db2;
|
||||
PRAGMA db2.secure_delete;
|
||||
}
|
||||
} {0 0}
|
||||
|
||||
finish_test
|
Loading…
x
Reference in New Issue
Block a user