Fossil SCM

Resolve mis-expansion of ATTACH DATABASE reported in [https://fossil-scm.org/forum/forumpost/e5cf69b8a0|forumpost/e5cf69b8a0].

stephan 2020-03-15 15:37 trunk
Commit bcdc2f44511bcfd692e993fdea55c44ad76eaa34866d0e8455770ca906b6a42f
1 file changed +2 -2
+2 -2
--- src/db.c
+++ src/db.c
@@ -1286,17 +1286,17 @@
12861286
blob_init(&key, 0, 0);
12871287
db_maybe_obtain_encryption_key(zDbName, &key);
12881288
if( fossil_getenv("FOSSIL_USE_SEE_TEXTKEY")==0 ){
12891289
char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY %Q",
12901290
zDbName, zLabel, blob_str(&key));
1291
- db_multi_exec(zCmd /*works-like:""*/);
1291
+ db_multi_exec("%s", zCmd /*safe-for-%s*/);
12921292
fossil_secure_zero(zCmd, strlen(zCmd));
12931293
sqlite3_free(zCmd);
12941294
}else{
12951295
char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY ''",
12961296
zDbName, zLabel);
1297
- db_multi_exec(zCmd /*works-like:""*/);
1297
+ db_multi_exec("%s", zCmd /*safe-for-%s*/);
12981298
sqlite3_free(zCmd);
12991299
#if USE_SEE
13001300
if( blob_size(&key)>0 ){
13011301
sqlite3_key_v2(g.db, zLabel, blob_str(&key), -1);
13021302
}
13031303
--- src/db.c
+++ src/db.c
@@ -1286,17 +1286,17 @@
1286 blob_init(&key, 0, 0);
1287 db_maybe_obtain_encryption_key(zDbName, &key);
1288 if( fossil_getenv("FOSSIL_USE_SEE_TEXTKEY")==0 ){
1289 char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY %Q",
1290 zDbName, zLabel, blob_str(&key));
1291 db_multi_exec(zCmd /*works-like:""*/);
1292 fossil_secure_zero(zCmd, strlen(zCmd));
1293 sqlite3_free(zCmd);
1294 }else{
1295 char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY ''",
1296 zDbName, zLabel);
1297 db_multi_exec(zCmd /*works-like:""*/);
1298 sqlite3_free(zCmd);
1299 #if USE_SEE
1300 if( blob_size(&key)>0 ){
1301 sqlite3_key_v2(g.db, zLabel, blob_str(&key), -1);
1302 }
1303
--- src/db.c
+++ src/db.c
@@ -1286,17 +1286,17 @@
1286 blob_init(&key, 0, 0);
1287 db_maybe_obtain_encryption_key(zDbName, &key);
1288 if( fossil_getenv("FOSSIL_USE_SEE_TEXTKEY")==0 ){
1289 char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY %Q",
1290 zDbName, zLabel, blob_str(&key));
1291 db_multi_exec("%s", zCmd /*safe-for-%s*/);
1292 fossil_secure_zero(zCmd, strlen(zCmd));
1293 sqlite3_free(zCmd);
1294 }else{
1295 char *zCmd = sqlite3_mprintf("ATTACH DATABASE %Q AS %Q KEY ''",
1296 zDbName, zLabel);
1297 db_multi_exec("%s", zCmd /*safe-for-%s*/);
1298 sqlite3_free(zCmd);
1299 #if USE_SEE
1300 if( blob_size(&key)>0 ){
1301 sqlite3_key_v2(g.db, zLabel, blob_str(&key), -1);
1302 }
1303

Keyboard Shortcuts

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