mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
builtin/bugreport.c: use thread-safe localtime_r()
To generate its filename, the 'git bugreport' builtin asks the system for the current time with 'localtime()'. Since this uses a shared buffer, it is not thread-safe. Even though 'git bugreport' is not multi-threaded, using localtime() can trigger some static analysis tools to complain, and a quick $ git grep -oh 'localtime\(_.\)\?' -- **/*.c | sort | uniq -c shows that the only usage of the thread-unsafe 'localtime' is in a piece of documentation. So, convert this instance to use the thread-safe version for consistency, and to appease some analysis tools. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
72ffeb997e
commit
4f6460df55
|
@ -125,6 +125,7 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix)
|
|||
struct strbuf report_path = STRBUF_INIT;
|
||||
int report = -1;
|
||||
time_t now = time(NULL);
|
||||
struct tm tm;
|
||||
char *option_output = NULL;
|
||||
char *option_suffix = "%Y-%m-%d-%H%M";
|
||||
const char *user_relative_path = NULL;
|
||||
|
@ -147,7 +148,7 @@ int cmd_bugreport(int argc, const char **argv, const char *prefix)
|
|||
strbuf_complete(&report_path, '/');
|
||||
|
||||
strbuf_addstr(&report_path, "git-bugreport-");
|
||||
strbuf_addftime(&report_path, option_suffix, localtime(&now), 0, 0);
|
||||
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)) {
|
||||
|
|
Loading…
Reference in a new issue