Fossil SCM

When emitting a ci-lock-fail sync card ensure that the login name is not empty, otherwise we emit a malformed card (short by one token) which the remote ignores. Reported off-list by Dan Mestas.

stephan 2026-10-12 08:12 UTC trunk
Commit 8d0de9d3dad9ac43e8672149784afab619f3603ea452d001acaa4075be00a7dd
1 file changed +1
+1
--- src/xfer.c
+++ src/xfer.c
@@ -1814,10 +1814,11 @@
18141814
if( fossil_strcmp(zName+8, blob_str(&xfer.aToken[2]))==0 ){
18151815
const char *zClientId = db_column_text(&q, 2);
18161816
const char *zLogin = db_column_text(&q,0);
18171817
sqlite3_int64 mtime = db_column_int64(&q, 1);
18181818
if( fossil_strcmp(zClientId, blob_str(&xfer.aToken[3]))!=0 ){
1819
+ if( 0==zLogin || 0==zLogin[0] ) zLogin = "nobody";
18191820
@ pragma ci-lock-fail %F(zLogin) %lld(mtime)
18201821
}
18211822
seenFault = 1;
18221823
}
18231824
}
18241825
--- src/xfer.c
+++ src/xfer.c
@@ -1814,10 +1814,11 @@
1814 if( fossil_strcmp(zName+8, blob_str(&xfer.aToken[2]))==0 ){
1815 const char *zClientId = db_column_text(&q, 2);
1816 const char *zLogin = db_column_text(&q,0);
1817 sqlite3_int64 mtime = db_column_int64(&q, 1);
1818 if( fossil_strcmp(zClientId, blob_str(&xfer.aToken[3]))!=0 ){
 
1819 @ pragma ci-lock-fail %F(zLogin) %lld(mtime)
1820 }
1821 seenFault = 1;
1822 }
1823 }
1824
--- src/xfer.c
+++ src/xfer.c
@@ -1814,10 +1814,11 @@
1814 if( fossil_strcmp(zName+8, blob_str(&xfer.aToken[2]))==0 ){
1815 const char *zClientId = db_column_text(&q, 2);
1816 const char *zLogin = db_column_text(&q,0);
1817 sqlite3_int64 mtime = db_column_int64(&q, 1);
1818 if( fossil_strcmp(zClientId, blob_str(&xfer.aToken[3]))!=0 ){
1819 if( 0==zLogin || 0==zLogin[0] ) zLogin = "nobody";
1820 @ pragma ci-lock-fail %F(zLogin) %lld(mtime)
1821 }
1822 seenFault = 1;
1823 }
1824 }
1825

Keyboard Shortcuts

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