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

Re: [PATCH] banned.h: mark strncat() as banned

From
Jeff King <peff@peff.net>
Date
Jan 3, 2019, 04:49 UTC
Message-ID
<20190103044941.GA20047@sigill.intra.peff.net>
In-Reply-To
<20190102093846.6664-1-e@80x24.org>
On Wed, Jan 02, 2019 at 09:38:46AM +0000, Eric Wong wrote:
> strncat() has the same quadratic behavior as strcat() and is
> difficult-to-read and bug-prone.  While it hasn't yet been a
> problem in git iself, strncat() found it's way into 'master'
> of cgit and caused segfaults on my system.
I'm in favor of this.

It doesn't have the "oops, I didn't NUL-terminate for you" problem that strncpy() has. But it actually has the opposite problem! It will always place a NUL, and you have to feed it sizeof(dst)-1 to avoid an overflow.

So I think it's important for safety (though I'd be fine banning it on the quadratic grounds alone ;) ).

-Peff
Previous: Eric Sunshine
Message 3 of 3 in “banned.h: mark strncat() as banned”
  1. banned.h: mark strncat() as bannedEric Wong, Jan 2, 2019
  2. Eric SunshineJan 2, 2019
  3. Jeff KingJan 3, 2019

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.