Fossil SCM

Enable [https://sqlite.org/pragma.html#pragma_secure_delete|secure_delete] when deleting chat messages, so that there are no forensic traces left behind.

drh 2021-01-20 02:09 trunk
Commit 12a120dd378b2a541ac465b725f2d7453a42733b0a052507454841c4264b9d6d
1 file changed +2
+2
--- src/chat.c
+++ src/chat.c
@@ -255,10 +255,11 @@
255255
if( rAge>mxDays ){
256256
msgid = db_int(0, "SELECT msgid FROM chat"
257257
" ORDER BY msgid DESC LIMIT 1 OFFSET %d", mxCnt);
258258
if( msgid>0 ){
259259
Stmt s;
260
+ db_multi_exec("PRAGMA secure_delete=ON;");
260261
db_prepare(&s,
261262
"DELETE FROM chat WHERE mtime<julianday('now')-:mxage"
262263
" AND msgid<%d", msgid);
263264
db_bind_double(&s, ":mxage", mxDays);
264265
db_step(&s);
@@ -697,10 +698,11 @@
697698
mdel = atoi(PD("name","0"));
698699
zOwner = db_text(0, "SELECT xfrom FROM chat WHERE msgid=%d", mdel);
699700
if( zOwner==0 ) return;
700701
if( fossil_strcmp(zOwner, g.zLogin)!=0 && !g.perm.Admin ) return;
701702
db_multi_exec(
703
+ "PRAGMA secure_delete=ON;\n"
702704
"BEGIN;\n"
703705
"DELETE FROM chat WHERE msgid=%d;\n"
704706
"INSERT INTO chat(mtime, xfrom, mdel)"
705707
" VALUES(julianday('now'), %Q, %d);\n"
706708
"COMMIT;",
707709
--- src/chat.c
+++ src/chat.c
@@ -255,10 +255,11 @@
255 if( rAge>mxDays ){
256 msgid = db_int(0, "SELECT msgid FROM chat"
257 " ORDER BY msgid DESC LIMIT 1 OFFSET %d", mxCnt);
258 if( msgid>0 ){
259 Stmt s;
 
260 db_prepare(&s,
261 "DELETE FROM chat WHERE mtime<julianday('now')-:mxage"
262 " AND msgid<%d", msgid);
263 db_bind_double(&s, ":mxage", mxDays);
264 db_step(&s);
@@ -697,10 +698,11 @@
697 mdel = atoi(PD("name","0"));
698 zOwner = db_text(0, "SELECT xfrom FROM chat WHERE msgid=%d", mdel);
699 if( zOwner==0 ) return;
700 if( fossil_strcmp(zOwner, g.zLogin)!=0 && !g.perm.Admin ) return;
701 db_multi_exec(
 
702 "BEGIN;\n"
703 "DELETE FROM chat WHERE msgid=%d;\n"
704 "INSERT INTO chat(mtime, xfrom, mdel)"
705 " VALUES(julianday('now'), %Q, %d);\n"
706 "COMMIT;",
707
--- src/chat.c
+++ src/chat.c
@@ -255,10 +255,11 @@
255 if( rAge>mxDays ){
256 msgid = db_int(0, "SELECT msgid FROM chat"
257 " ORDER BY msgid DESC LIMIT 1 OFFSET %d", mxCnt);
258 if( msgid>0 ){
259 Stmt s;
260 db_multi_exec("PRAGMA secure_delete=ON;");
261 db_prepare(&s,
262 "DELETE FROM chat WHERE mtime<julianday('now')-:mxage"
263 " AND msgid<%d", msgid);
264 db_bind_double(&s, ":mxage", mxDays);
265 db_step(&s);
@@ -697,10 +698,11 @@
698 mdel = atoi(PD("name","0"));
699 zOwner = db_text(0, "SELECT xfrom FROM chat WHERE msgid=%d", mdel);
700 if( zOwner==0 ) return;
701 if( fossil_strcmp(zOwner, g.zLogin)!=0 && !g.perm.Admin ) return;
702 db_multi_exec(
703 "PRAGMA secure_delete=ON;\n"
704 "BEGIN;\n"
705 "DELETE FROM chat WHERE msgid=%d;\n"
706 "INSERT INTO chat(mtime, xfrom, mdel)"
707 " VALUES(julianday('now'), %Q, %d);\n"
708 "COMMIT;",
709

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button