Fossil SCM

Cherry-pick [767b175d90]: Avoid references to private check-ins in Q-cards of public check-in manifests. This ensures consistent behavior regarding leakage of private check-in hashes, possibly generating phantoms on peer repositories, for P- and Q-cards.

florian 2022-10-18 13:31 trunk
Commit 52a66829d655ff35dc5245b664b86225438d7f46a8d183ac98268ece982d8564
2 files changed +2 -3 +2 -3
+2 -3
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
17691769
" WHERE (vmerge.id=-1 OR vmerge.id=-2)"
17701770
" ORDER BY 1");
17711771
while( db_step(&q)==SQLITE_ROW ){
17721772
const char *zCherrypickUuid = db_column_text(&q, 0);
17731773
int mid = db_column_int(&q, 1);
1774
- if( mid != vid ){
1775
- blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
1776
- }
1774
+ if( (!g.markPrivate && content_is_private(mid)) || (mid == vid) ) continue;
1775
+ blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
17771776
}
17781777
db_finalize(&q);
17791778
17801779
if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
17811780
zColor = p->zColor;
17821781
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
1769 " WHERE (vmerge.id=-1 OR vmerge.id=-2)"
1770 " ORDER BY 1");
1771 while( db_step(&q)==SQLITE_ROW ){
1772 const char *zCherrypickUuid = db_column_text(&q, 0);
1773 int mid = db_column_int(&q, 1);
1774 if( mid != vid ){
1775 blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
1776 }
1777 }
1778 db_finalize(&q);
1779
1780 if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
1781 zColor = p->zColor;
1782
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
1769 " WHERE (vmerge.id=-1 OR vmerge.id=-2)"
1770 " ORDER BY 1");
1771 while( db_step(&q)==SQLITE_ROW ){
1772 const char *zCherrypickUuid = db_column_text(&q, 0);
1773 int mid = db_column_int(&q, 1);
1774 if( (!g.markPrivate && content_is_private(mid)) || (mid == vid) ) continue;
1775 blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
 
1776 }
1777 db_finalize(&q);
1778
1779 if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
1780 zColor = p->zColor;
1781
+2 -3
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
17691769
" WHERE (vmerge.id=-1 OR vmerge.id=-2)"
17701770
" ORDER BY 1");
17711771
while( db_step(&q)==SQLITE_ROW ){
17721772
const char *zCherrypickUuid = db_column_text(&q, 0);
17731773
int mid = db_column_int(&q, 1);
1774
- if( mid != vid ){
1775
- blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
1776
- }
1774
+ if( (!g.markPrivate && content_is_private(mid)) || (mid == vid) ) continue;
1775
+ blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
17771776
}
17781777
db_finalize(&q);
17791778
17801779
if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
17811780
zColor = p->zColor;
17821781
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
1769 " WHERE (vmerge.id=-1 OR vmerge.id=-2)"
1770 " ORDER BY 1");
1771 while( db_step(&q)==SQLITE_ROW ){
1772 const char *zCherrypickUuid = db_column_text(&q, 0);
1773 int mid = db_column_int(&q, 1);
1774 if( mid != vid ){
1775 blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
1776 }
1777 }
1778 db_finalize(&q);
1779
1780 if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
1781 zColor = p->zColor;
1782
--- src/checkin.c
+++ src/checkin.c
@@ -1769,13 +1769,12 @@
1769 " WHERE (vmerge.id=-1 OR vmerge.id=-2)"
1770 " ORDER BY 1");
1771 while( db_step(&q)==SQLITE_ROW ){
1772 const char *zCherrypickUuid = db_column_text(&q, 0);
1773 int mid = db_column_int(&q, 1);
1774 if( (!g.markPrivate && content_is_private(mid)) || (mid == vid) ) continue;
1775 blob_appendf(pOut, "Q %s\n", zCherrypickUuid);
 
1776 }
1777 db_finalize(&q);
1778
1779 if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum);
1780 zColor = p->zColor;
1781

Keyboard Shortcuts

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