From: Jiamu Sun <baiorettohr@gmail•com>
To: git@vger•kernel.org
Cc: barroit@linux•com
Subject: [PATCH v3] bugreport.c: fix a crash in `git bugreport` with `--no-suffix` option
Date: Fri, 15 Mar 2024 07:34:06 +0900 [thread overview]
Message-ID: <20240314223406.79283-1-barroit@linux.com> (raw)
In-Reply-To: <pull.1693.v2.git.1710388817.gitgitgadget@gmail.com>
executing `git bugreport --no-suffix` led to a segmentation fault
due to strbuf_addftime() being called with a NULL option_suffix
variable. This occurs because negating the "--[no-]suffix" option
causes the parser to set option_suffix to NULL, which is not
handled prior to calling strbuf_addftime().
By adding a NULL check, the `--no-suffix` option is now available.
Using this option disables the suffix, and the file is just named
`git-bugreport` without any disambiguation measure.
Signed-off-by: Jiamu Sun <barroit@linux•com>
---
Changes since v2:
- Squashed the previous patch series into a single patch for
clarity
Documentation/git-bugreport.txt | 6 +++++-
builtin/bugreport.c | 10 +++++++---
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt
index ca626f7fc6..112658b3c3 100644
--- a/Documentation/git-bugreport.txt
+++ b/Documentation/git-bugreport.txt
@@ -8,7 +8,8 @@ git-bugreport - Collect information for user to file a bug report
SYNOPSIS
--------
[verse]
-'git bugreport' [(-o | --output-directory) <path>] [(-s | --suffix) <format>]
+'git bugreport' [(-o | --output-directory) <path>]
+ [(-s | --suffix) <format> | --no-suffix]
[--diagnose[=<mode>]]
DESCRIPTION
@@ -51,9 +52,12 @@ OPTIONS
-s <format>::
--suffix <format>::
+--no-suffix::
Specify an alternate suffix for the bugreport name, to create a file
named 'git-bugreport-<formatted-suffix>'. This should take the form of a
strftime(3) format string; the current local time will be used.
+ `--no-suffix` disables the suffix and the file is just named
+ `git-bugreport` without any disambiguation measure.
--no-diagnose::
--diagnose[=<mode>]::
diff --git a/builtin/bugreport.c b/builtin/bugreport.c
index 3106e56a13..25f860a0d9 100644
--- a/builtin/bugreport.c
+++ b/builtin/bugreport.c
@@ -64,7 +64,8 @@ static void get_populated_hooks(struct strbuf *hook_info, int nongit)
}
static const char * const bugreport_usage[] = {
- N_("git bugreport [(-o | --output-directory) <path>] [(-s | --suffix) <format>]\n"
+ N_("git bugreport [(-o | --output-directory) <path>]\n"
+ " [(-s | --suffix) <format> | --no-suffix]\n"
" [--diagnose[=<mode>]]"),
NULL
};
@@ -138,8 +139,11 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix)
strbuf_complete(&report_path, '/');
output_path_len = report_path.len;
- strbuf_addstr(&report_path, "git-bugreport-");
- strbuf_addftime(&report_path, option_suffix, localtime_r(&now, &tm), 0, 0);
+ strbuf_addstr(&report_path, "git-bugreport");
+ if (option_suffix) {
+ strbuf_addch(&report_path, '-');
+ strbuf_addftime(&report_path, option_suffix, localtime_r(&now, &tm), 0, 0);
+ }
strbuf_addstr(&report_path, ".txt");
switch (safe_create_leading_directories(report_path.buf)) {
--
2.44.GIT
next prev parent reply other threads:[~2024-03-14 22:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-12 16:26 [PATCH] bugreport.c: fix a crash in `git bugreport` with `--no-suffix` option barroit via GitGitGadget
2024-03-13 15:59 ` Junio C Hamano
2024-03-13 17:42 ` Junio C Hamano
2024-03-16 1:55 ` Taylor Blau
2024-03-14 4:00 ` [PATCH v2 0/2] bugreport.c: fix a crash in git bugreport with --no-suffix option barroit via GitGitGadget
2024-03-14 4:00 ` [PATCH v2 1/2] bugreport.c: fix a crash in `git bugreport` with `--no-suffix` option Jiamu Sun via GitGitGadget
2024-03-14 4:00 ` [PATCH v2 2/2] doc: update doc file and usage for git-bugreport Jiamu Sun via GitGitGadget
2024-03-14 16:27 ` [PATCH v2 0/2] bugreport.c: fix a crash in git bugreport with --no-suffix option Junio C Hamano
2024-03-14 16:33 ` Junio C Hamano
2024-03-15 22:42 ` [PATCH v3] " Jiamu Sun
2024-03-14 22:34 ` Jiamu Sun [this message]
2024-03-16 1:56 ` [PATCH v3] bugreport.c: fix a crash in `git bugreport` with `--no-suffix` option Taylor Blau
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=20240314223406.79283-1-barroit@linux.com \
--to=baiorettohr@gmail$(echo .)com \
--cc=barroit@linux$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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