From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org,
"brian m. carlson" <sandals@crustytoothpaste.net>,
Phillip Wood <phillip.wood123@gmail.com>,
Andreas Schwab <schwab@linux-m68k.org>,
Ondrej Pohorelsky <opohorel@redhat.com>,
Patrick Steinhardt <ps@pks.im>, Jeff King <peff@peff.net>
Subject: Re: [PATCH v3 0/5] Sanitize sideband channel messages
Date: Fri, 16 Jan 2026 23:32:34 +0100 (CET) [thread overview]
Message-ID: <fc58c8ea-88d0-d86c-30e6-0ab9fceb23cc@gmx.de> (raw)
In-Reply-To: <pull.1853.v3.git.1768602373.gitgitgadget@gmail.com>
Hi,
On Fri, 16 Jan 2026, Johannes Schindelin via GitGitGadget wrote:
> Note: This series applies cleanly on v2.47.3. Integrating this into newer
> versions is a bit cumbersome; I pushed a version of the branch as rebased to
> v2.53.0-rc0 here:
> https://github.com/dscho/git/tree/refs/heads/sanitize-sideband-2.53.0-rc0
Here is the range-diff:
1: e6b71af0cad = 1: 757c859add0 sideband: mask control characters
2: 8f64d658447 ! 2: 28c9fa7e205 sideband: introduce an "escape hatch" to allow control characters
@@ Commit message
Suggested-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
- ## Documentation/config.txt ##
-@@ Documentation/config.txt: include::config/sequencer.txt[]
+ ## Documentation/config.adoc ##
+@@ Documentation/config.adoc: include::config/sequencer.adoc[]
- include::config/showbranch.txt[]
+ include::config/showbranch.adoc[]
-+include::config/sideband.txt[]
++include::config/sideband.adoc[]
+
- include::config/sparse.txt[]
+ include::config/sparse.adoc[]
- include::config/splitindex.txt[]
+ include::config/splitindex.adoc[]
- ## Documentation/config/sideband.txt (new) ##
+ ## Documentation/config/sideband.adoc (new) ##
@@
+sideband.allowControlCharacters::
+ By default, control characters that are delivered via the sideband
@@ sideband.c: static struct keyword_entry keywords[] = {
+static int allow_control_characters;
+
/* Returns a color setting (GIT_COLOR_NEVER, etc). */
- static int use_sideband_colors(void)
+ static enum git_colorbool use_sideband_colors(void)
{
-@@ sideband.c: static int use_sideband_colors(void)
- if (use_sideband_colors_cached >= 0)
+@@ sideband.c: static enum git_colorbool use_sideband_colors(void)
+ if (use_sideband_colors_cached != GIT_COLOR_UNKNOWN)
return use_sideband_colors_cached;
-+ git_config_get_bool("sideband.allowcontrolcharacters",
++ repo_config_get_bool(the_repository, "sideband.allowcontrolcharacters",
+ &allow_control_characters);
+
- if (!git_config_get_string_tmp(key, &value))
+ if (!repo_config_get_string_tmp(the_repository, key, &value))
use_sideband_colors_cached = git_config_colorbool(key, value);
- else if (!git_config_get_string_tmp("color.ui", &value))
+ else if (!repo_config_get_string_tmp(the_repository, "color.ui", &value))
@@ sideband.c: void list_config_color_sideband_slots(struct string_list *list, const char *pref
static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n)
3: 44838acaccc ! 3: 58a4f78783b sideband: do allow ANSI color sequences by default
@@ Commit message
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
- ## Documentation/config/sideband.txt ##
+ ## Documentation/config/sideband.adoc ##
@@
sideband.allowControlCharacters::
By default, control characters that are delivered via the sideband
@@ sideband.c: static struct keyword_entry keywords[] = {
+} allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES;
/* Returns a color setting (GIT_COLOR_NEVER, etc). */
- static int use_sideband_colors(void)
-@@ sideband.c: static int use_sideband_colors(void)
- if (use_sideband_colors_cached >= 0)
+ static enum git_colorbool use_sideband_colors(void)
+@@ sideband.c: static enum git_colorbool use_sideband_colors(void)
+ if (use_sideband_colors_cached != GIT_COLOR_UNKNOWN)
return use_sideband_colors_cached;
-- git_config_get_bool("sideband.allowcontrolcharacters",
+- repo_config_get_bool(the_repository, "sideband.allowcontrolcharacters",
- &allow_control_characters);
-+ switch (git_config_get_maybe_bool("sideband.allowcontrolcharacters", &i)) {
++ switch (repo_config_get_maybe_bool(the_repository, "sideband.allowcontrolcharacters", &i)) {
+ case 0: /* Boolean value */
+ allow_control_characters = i ? ALLOW_ALL_CONTROL_CHARACTERS :
+ ALLOW_NO_CONTROL_CHARACTERS;
+ break;
+ case -1: /* non-Boolean value */
-+ if (git_config_get_string_tmp("sideband.allowcontrolcharacters",
++ if (repo_config_get_string_tmp(the_repository, "sideband.allowcontrolcharacters",
+ &value))
+ ; /* huh? `get_maybe_bool()` returned -1 */
+ else if (!strcmp(value, "default"))
@@ sideband.c: static int use_sideband_colors(void)
+ break; /* not configured */
+ }
- if (!git_config_get_string_tmp(key, &value))
+ if (!repo_config_get_string_tmp(the_repository, key, &value))
use_sideband_colors_cached = git_config_colorbool(key, value);
@@ sideband.c: void list_config_color_sideband_slots(struct string_list *list, const char *pref
list_config_item(list, prefix, keywords[i].keyword);
4: cc578465b9c ! 4: 24708d83075 sideband: add options to allow more control sequences to be passed through
@@ Commit message
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
- ## Documentation/config/sideband.txt ##
-@@ Documentation/config/sideband.txt: sideband.allowControlCharacters::
+ ## Documentation/config/sideband.adoc ##
+@@ Documentation/config/sideband.adoc: sideband.allowControlCharacters::
By default, control characters that are delivered via the sideband
are masked, except ANSI color sequences. This prevents potentially
unwanted ANSI escape sequences from being sent to the terminal. Use
@@ sideband.c: static struct keyword_entry keywords[] = {
+}
/* Returns a color setting (GIT_COLOR_NEVER, etc). */
- static int use_sideband_colors(void)
-@@ sideband.c: static int use_sideband_colors(void)
- if (git_config_get_string_tmp("sideband.allowcontrolcharacters",
+ static enum git_colorbool use_sideband_colors(void)
+@@ sideband.c: static enum git_colorbool use_sideband_colors(void)
+ if (repo_config_get_string_tmp(the_repository, "sideband.allowcontrolcharacters",
&value))
; /* huh? `get_maybe_bool()` returned -1 */
- else if (!strcmp(value, "default"))
5: f2eb0a758ce ! 5: 4db96901d02 sideband: offer to configure sanitizing on a per-URL basis
@@ Commit message
Suggested-by: Junio Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
- ## Documentation/config/sideband.txt ##
-@@ Documentation/config/sideband.txt: sideband.allowControlCharacters::
+ ## Documentation/config/sideband.adoc ##
+@@ Documentation/config/sideband.adoc: sideband.allowControlCharacters::
`true`::
Allow all control characters to be sent to the terminal.
--
@@ sideband.c: static void parse_allow_control_characters(const char *value)
+ config.collect_fn = sideband_config_callback;
+
+ normalized_url = url_normalize(url, &config.url);
-+ git_config(urlmatch_config_entry, &config);
++ repo_config(the_repository, urlmatch_config_entry, &config);
+ free(normalized_url);
+ string_list_clear(&config.vars, 1);
+ urlmatch_config_release(&config);
}
/* Returns a color setting (GIT_COLOR_NEVER, etc). */
-@@ sideband.c: static int use_sideband_colors(void)
- if (use_sideband_colors_cached >= 0)
+@@ sideband.c: static enum git_colorbool use_sideband_colors(void)
+ if (use_sideband_colors_cached != GIT_COLOR_UNKNOWN)
return use_sideband_colors_cached;
-- switch (git_config_get_maybe_bool("sideband.allowcontrolcharacters", &i)) {
+- switch (repo_config_get_maybe_bool(the_repository, "sideband.allowcontrolcharacters", &i)) {
- case 0: /* Boolean value */
- allow_control_characters = i ? ALLOW_ALL_CONTROL_CHARACTERS :
- ALLOW_NO_CONTROL_CHARACTERS;
- break;
- case -1: /* non-Boolean value */
-- if (git_config_get_string_tmp("sideband.allowcontrolcharacters",
+- if (repo_config_get_string_tmp(the_repository, "sideband.allowcontrolcharacters",
- &value))
- ; /* huh? `get_maybe_bool()` returned -1 */
- else
@@ sideband.c: static int use_sideband_colors(void)
- default:
- break; /* not configured */
+ if (allow_control_characters == ALLOW_CONTROL_SEQUENCES_UNSET) {
-+ if (!git_config_get_value("sideband.allowcontrolcharacters", &value))
++ if (!repo_config_get_value(the_repository, "sideband.allowcontrolcharacters", &value))
+ sideband_allow_control_characters_config("sideband.allowcontrolcharacters", value);
+
+ if (allow_control_characters == ALLOW_CONTROL_SEQUENCES_UNSET)
+ allow_control_characters = ALLOW_DEFAULT_ANSI_SEQUENCES;
}
- if (!git_config_get_string_tmp(key, &value))
+ if (!repo_config_get_string_tmp(the_repository, key, &value))
## sideband.h ##
@@ sideband.h: int demultiplex_sideband(const char *me, int status,
@@ transport.c
#include "bundle-uri.h"
+#include "sideband.h"
- static int transport_use_color = -1;
+ static enum git_colorbool transport_use_color = GIT_COLOR_UNKNOWN;
static char transport_colors[][COLOR_MAXLEN] = {
@@ transport.c: struct transport *transport_get(struct remote *remote, const char *url)
- ret->hash_algo = &hash_algos[GIT_HASH_SHA1];
+ ret->hash_algo = &hash_algos[GIT_HASH_SHA1_LEGACY];
+ sideband_apply_url_config(ret->url);
+
Ciao,
Johannes
next prev parent reply other threads:[~2026-01-16 22:32 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-14 18:19 [PATCH 0/3] Sanitize sideband channel messages Johannes Schindelin via GitGitGadget
2025-01-14 18:19 ` [PATCH 1/3] sideband: mask control characters Johannes Schindelin via GitGitGadget
2025-01-15 14:49 ` Phillip Wood
2025-12-02 15:43 ` Johannes Schindelin
2025-01-15 15:17 ` Andreas Schwab
2025-01-15 16:24 ` Junio C Hamano
2025-01-14 18:19 ` [PATCH 2/3] sideband: introduce an "escape hatch" to allow " Johannes Schindelin via GitGitGadget
2025-01-14 18:19 ` [PATCH 3/3] sideband: do allow ANSI color sequences by default Johannes Schindelin via GitGitGadget
2025-01-14 22:50 ` [PATCH 0/3] Sanitize sideband channel messages brian m. carlson
2025-01-16 6:45 ` Junio C Hamano
2025-01-28 16:03 ` Ondrej Pohorelsky
2025-01-31 17:55 ` Junio C Hamano
2025-12-02 14:11 ` Johannes Schindelin
2025-12-03 0:47 ` brian m. carlson
2025-12-03 8:04 ` Johannes Schindelin
2025-01-15 14:49 ` Phillip Wood
2025-12-02 14:56 ` Johannes Schindelin
2025-12-17 14:23 ` [PATCH v2 0/4] " Johannes Schindelin via GitGitGadget
2025-12-17 14:23 ` [PATCH v2 1/4] sideband: mask control characters Johannes Schindelin via GitGitGadget
2026-01-09 12:38 ` Patrick Steinhardt
2026-01-16 19:29 ` Johannes Schindelin
2025-12-17 14:23 ` [PATCH v2 2/4] sideband: introduce an "escape hatch" to allow " Johannes Schindelin via GitGitGadget
2025-12-18 2:22 ` Junio C Hamano
2025-12-18 17:59 ` Johannes Schindelin
2025-12-19 13:33 ` Junio C Hamano
2026-01-16 19:25 ` Johannes Schindelin
2026-01-09 12:38 ` Patrick Steinhardt
2025-12-17 14:23 ` [PATCH v2 3/4] sideband: do allow ANSI color sequences by default Johannes Schindelin via GitGitGadget
2026-01-09 12:38 ` Patrick Steinhardt
2026-01-16 19:38 ` Johannes Schindelin
2025-12-17 14:23 ` [PATCH v2 4/4] sideband: add options to allow more control sequences to be passed through Johannes Schindelin via GitGitGadget
2026-01-09 12:38 ` Patrick Steinhardt
2026-01-10 17:26 ` brian m. carlson
2026-01-15 21:14 ` Jeff King
2026-01-15 21:36 ` Junio C Hamano
2026-01-15 23:12 ` Johannes Schindelin
2026-01-16 6:45 ` Patrick Steinhardt
2026-01-16 12:12 ` Ondrej Pohorelsky
2026-01-16 15:21 ` Junio C Hamano
2026-01-16 18:46 ` Johannes Schindelin
2026-01-16 19:24 ` Junio C Hamano
2026-01-19 7:20 ` Patrick Steinhardt
2026-01-19 22:16 ` brian m. carlson
2026-01-20 2:41 ` D. Ben Knoble
2026-01-20 17:05 ` Junio C Hamano
2026-01-20 19:31 ` Jeff King
2026-01-20 20:11 ` Junio C Hamano
2026-01-21 7:39 ` Patrick Steinhardt
2026-01-22 12:29 ` Johannes Schindelin
2026-01-22 17:58 ` Junio C Hamano
2026-01-15 23:10 ` brian m. carlson
2026-02-03 1:11 ` Junio C Hamano
2026-02-03 7:12 ` Johannes Schindelin
2026-02-03 19:00 ` Junio C Hamano
2026-02-04 19:35 ` Junio C Hamano
2026-01-16 19:47 ` Johannes Schindelin
2026-01-16 22:26 ` [PATCH v3 0/5] Sanitize sideband channel messages Johannes Schindelin via GitGitGadget
2026-01-16 22:26 ` [PATCH v3 1/5] sideband: mask control characters Johannes Schindelin via GitGitGadget
2026-01-16 22:26 ` [PATCH v3 2/5] sideband: introduce an "escape hatch" to allow " Johannes Schindelin via GitGitGadget
2026-01-16 22:26 ` [PATCH v3 3/5] sideband: do allow ANSI color sequences by default Johannes Schindelin via GitGitGadget
2026-01-16 22:26 ` [PATCH v3 4/5] sideband: add options to allow more control sequences to be passed through Johannes Schindelin via GitGitGadget
2026-01-16 22:26 ` [PATCH v3 5/5] sideband: offer to configure sanitizing on a per-URL basis Johannes Schindelin via GitGitGadget
2026-01-16 22:32 ` Johannes Schindelin [this message]
2026-02-03 10:17 ` [PATCH v4 0/6] Sanitize sideband channel messages Johannes Schindelin via GitGitGadget
2026-02-03 10:17 ` [PATCH v4 1/6] sideband: mask control characters Johannes Schindelin via GitGitGadget
2026-02-03 10:17 ` [PATCH v4 2/6] sideband: introduce an "escape hatch" to allow " Johannes Schindelin via GitGitGadget
2026-02-03 10:17 ` [PATCH v4 3/6] sideband: do allow ANSI color sequences by default Johannes Schindelin via GitGitGadget
2026-02-03 10:18 ` [PATCH v4 4/6] sideband: add options to allow more control sequences to be passed through Johannes Schindelin via GitGitGadget
2026-02-03 10:18 ` [PATCH v4 5/6] sideband: offer to configure sanitizing on a per-URL basis Johannes Schindelin via GitGitGadget
2026-02-03 10:18 ` [PATCH v4 6/6] sideband: delay sanitizing by default to Git v3.0 Johannes Schindelin via GitGitGadget
2026-02-04 19:26 ` [PATCH v4 0/6] Sanitize sideband channel messages Junio C Hamano
2026-02-05 14:48 ` Junio C Hamano
2026-02-13 23:50 ` Junio C Hamano
2026-03-02 18:11 ` [PATCH 0/3] Sanitizing sideband output Junio C Hamano
2026-03-02 18:11 ` [PATCH 1/3] sideband: drop 'default' configuration Junio C Hamano
2026-03-02 18:11 ` [PATCH 2/3] sideband: delay sanitizing by default to Git v3.0 Junio C Hamano
2026-03-02 18:11 ` [PATCH 3/3] sideband: conditional documentation fix Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 0/7] Sanitizing sideband output Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 1/7] sideband: mask control characters Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 2/7] sideband: introduce an "escape hatch" to allow " Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 3/7] sideband: do allow ANSI color sequences by default Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 4/7] sideband: add options to allow more control sequences to be passed through Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 5/7] sideband: offer to configure sanitizing on a per-URL basis Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 6/7] sideband: drop 'default' configuration Junio C Hamano
2026-03-05 23:34 ` [PATCH v5 7/7] sideband: delay sanitizing by default to Git v3.0 Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fc58c8ea-88d0-d86c-30e6-0ab9fceb23cc@gmx.de \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=opohorel@redhat.com \
--cc=peff@peff.net \
--cc=phillip.wood123@gmail.com \
--cc=ps@pks.im \
--cc=sandals@crustytoothpaste.net \
--cc=schwab@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox