All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Wolfgang Müller" <wolf@oriole.systems>
To: git@vger.kernel.org
Cc: "Wolfgang Müller" <wolf@oriole.systems>
Subject: [PATCH v2 1/2] rev-parse: fix segfault with missing --path-format argument
Date: Mon, 17 May 2021 10:02:42 +0200	[thread overview]
Message-ID: <20210517080243.10191-2-wolf@oriole.systems> (raw)
In-Reply-To: <20210517080243.10191-1-wolf@oriole.systems>

Calling "git rev-parse --path-format" without an argument segfaults
instead of giving an error message. Commit fac60b8925 (rev-parse: add
option for absolute or relative path formatting, 2020-12-13) added the
argument parsing code but forgot to handle NULL.

Returning an error makes sense here because there is no default value we
could use. Add a test case to verify.

Signed-off-by: Wolfgang Müller <wolf@oriole.systems>
---
 builtin/rev-parse.c  | 2 ++
 t/t1500-rev-parse.sh | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 85bad9052e..7af8dab8bc 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -759,6 +759,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
 				continue;
 			}
 			if (opt_with_value(arg, "--path-format", &arg)) {
+				if (!arg)
+					die("--path-format requires an argument");
 				if (!strcmp(arg, "absolute")) {
 					format = FORMAT_CANONICAL;
 				} else if (!strcmp(arg, "relative")) {
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index deae916707..1c2df08333 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -146,6 +146,10 @@ test_expect_success '--path-format can change in the middle of the command line'
 	test_cmp expect actual
 '
 
+test_expect_success '--path-format does not segfault without an argument' '
+	test_must_fail git rev-parse --path-format
+'
+
 test_expect_success 'git-common-dir from worktree root' '
 	echo .git >expect &&
 	git rev-parse --git-common-dir >actual &&
-- 
2.31.1


  reply	other threads:[~2021-05-17  8:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-16 12:04 [RFC PATCH] rev-parse: fix segfault with missing --path-format argument Wolfgang Müller
2021-05-16 12:53 ` Junio C Hamano
2021-05-16 14:31   ` Wolfgang Müller
2021-05-16 21:59     ` Junio C Hamano
2021-05-17  7:19       ` Wolfgang Müller
2021-05-17  8:02 ` [PATCH v2 0/2] rev-parse: Fix segfault and translate messages Wolfgang Müller
2021-05-17  8:02   ` Wolfgang Müller [this message]
2021-05-17  8:16     ` [PATCH v2 1/2] rev-parse: fix segfault with missing --path-format argument Jeff King
2021-05-19  9:52       ` Wolfgang Müller
2021-05-19 10:19         ` Wolfgang Müller
2021-05-19 14:21         ` Jeff King
2021-05-17  8:02   ` [PATCH v2 2/2] rev-parse: Mark die() messages for translation Wolfgang Müller

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=20210517080243.10191-2-wolf@oriole.systems \
    --to=wolf@oriole.systems \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.