git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: git@vger.kernel.org
Cc: "Carlos Andrés Ramírez Cataño" <antaigroupltda@gmail.com>
Subject: [PATCH 4/7] help: handle NULL value for alias.* config
Date: Thu, 7 Dec 2023 02:11:27 -0500	[thread overview]
Message-ID: <20231207071127.GD1276005@coredump.intra.peff.net> (raw)
In-Reply-To: <20231207071030.GA1275835@coredump.intra.peff.net>

When showing all config with "git help --all", we print the list of
defined aliases. But our config callback to do so does not check for a
NULL value, meaning a config block like:

  [alias]
  foo

will cause us to segfault. We should detect and complain about this in
the usual way.

Since this command is purely informational (and we aren't trying to run
the alias), we could perhaps just generate a warning and continue. But
this sort of misconfiguration should be pretty rare, and the error
message we will produce points directly to the line of config that needs
to be fixed. So just generating the usual error should be OK.

Signed-off-by: Jeff King <peff@peff.net>
---
 help.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/help.c b/help.c
index 6d2ebfbd2a..2dbe57b413 100644
--- a/help.c
+++ b/help.c
@@ -464,8 +464,11 @@ static int get_alias(const char *var, const char *value,
 {
 	struct string_list *list = data;
 
-	if (skip_prefix(var, "alias.", &var))
+	if (skip_prefix(var, "alias.", &var)) {
+		if (!value)
+			return config_error_nonbool(var);
 		string_list_append(list, var)->util = xstrdup(value);
+	}
 
 	return 0;
 }
-- 
2.43.0.664.ga12c899002


  parent reply	other threads:[~2023-12-07  7:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-07  7:10 [PATCH 0/7] fix segfaults with implicit-bool config Jeff King
2023-12-07  7:11 ` [PATCH 1/7] config: handle NULL value when parsing non-bools Jeff King
2023-12-07  8:14   ` Patrick Steinhardt
2023-12-12  0:58     ` Jeff King
2023-12-07  7:11 ` [PATCH 2/7] setup: handle NULL value when parsing extensions Jeff King
2023-12-07  7:11 ` [PATCH 3/7] trace2: handle NULL values in tr2_sysenv config callback Jeff King
2023-12-07  7:11 ` Jeff King [this message]
2023-12-07  7:11 ` [PATCH 5/7] submodule: handle NULL value when parsing submodule.*.branch Jeff King
2023-12-07  8:14   ` Patrick Steinhardt
2023-12-12  0:46     ` Jeff King
2023-12-07  7:11 ` [PATCH 6/7] trailer: handle NULL value when parsing trailer-specific config Jeff King
2023-12-07  8:14   ` Patrick Steinhardt
2023-12-07  7:11 ` [PATCH 7/7] fsck: handle NULL value when parsing message config Jeff King
2023-12-07  8:15   ` Patrick Steinhardt
2023-12-07  8:14 ` [PATCH 0/7] fix segfaults with implicit-bool config Patrick Steinhardt
2023-12-12  0:52   ` Jeff King
2023-12-12  4:10     ` Patrick Steinhardt

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=20231207071127.GD1276005@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=antaigroupltda@gmail.com \
    --cc=git@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).