public inbox for git@vger.kernel.org
 help / color / mirror / Atom feed
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

  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