git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] banned.h: mark non-reentrant gmtime, etc as banned

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Dec 6, 2020, 14:56 UTC
Message-ID
<20201206145642.GH8396@szeder.dev>
In-Reply-To
<20201201211138.33850-1-gitster@pobox.com>
On Tue, Dec 01, 2020 at 01:11:37PM -0800, Junio C Hamano wrote:
Show 33 quoted lines
> From: Jeff King <peff@peff.net>
> 
> The traditional gmtime(), localtime(), ctime(), and asctime() functions
> return pointers to shared storage. This means they're not thread-safe,
> and they also run the risk of somebody holding onto the result across
> multiple calls (where each call invalidates the previous result).
> 
> All callers should be using their reentrant counterparts.
> 
> Signed-off-by: Jeff King <peff@peff.net>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>  banned.h | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/banned.h b/banned.h
> index 60a18d4403..ed11300bb2 100644
> --- a/banned.h
> +++ b/banned.h
> @@ -29,4 +29,13 @@
>  #define vsprintf(buf,fmt,arg) BANNED(vsprintf)
>  #endif
>  
> +#undef gmtime
> +#define gmtime(t) BANNED(gmtime)
> +#undef localtime
> +#define localtime(t) BANNED(localtime)
> +#undef ctime
> +#define ctime(t) BANNED(ctime)
> +#undef asctime
> +#define asctime(t) BANNED(asctime)
> +
>  #endif /* BANNED_H */

This patch should be queued on top of topic 'tb/bugreport-no-localtime'. Currently they are on parallel branches:

  * 91aef03015 (refs/upstream/jk/banned) banned.h: mark ctime_r() and asctime_r() as banned
  * 1fbfdf556f banned.h: mark non-reentrant gmtime, etc as banned
  | * 4f6460df55 (refs/upstream/tb/bugreport-no-localtime) builtin/bugreport.c: use thread-safe localtime_r()
  |/  
  * 72ffeb997e Ninth batch

and because of the not-yet-removed localtime() call in 'builtin/bugreport.c' commits 1fbfdf556f and 91aef03015 can't be built.

Previous: Taylor BlauNext: Jeff King
Message 12 of 14 in “builtin/bugreport.c: use thread-safe localtime_r()”
  1. builtin/bugreport.c: use thread-safe localtime_r()Taylor Blau, Nov 30, 2020
  2. builtin/bugreport.c: use thread-safe localtime_r()Taylor Blau, Dec 1, 2020
  3. Jeff KingDec 1, 2020
  4. Eric SunshineDec 1, 2020
  5. Junio C HamanoDec 1, 2020
  6. Taylor BlauDec 1, 2020
  7. 1/2 banned.h: mark non-reentrant gmtime, etc as bannedJunio C Hamano, Dec 1, 2020
  8. 2/2 banned.h: mark ctime_r() and asctime_r() as banned.Junio C Hamano, Dec 1, 2020
  9. Eric SunshineDec 1, 2020
  10. Junio C HamanoDec 1, 2020
  11. Taylor BlauDec 1, 2020
  12. SZEDER GáborDec 6, 2020
  13. Jeff KingDec 2, 2020
  14. Eric SunshineDec 1, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.