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

Re: [PATCH] blame: prefer xsnprintf to strcpy for colors

From
Stefan Beller <sbeller@google.com>
Date
Jul 13, 2018, 21:10 UTC
Message-ID
<CAGZ79kYpZy4q4vD3z5oZNZYgCYWu4YWeA4DX=E8jFW9=XUe7_g@mail.gmail.com>
In-Reply-To
<20180713210452.GA18909@sigill.intra.peff.net>
On Fri, Jul 13, 2018 at 2:04 PM Jeff King <peff@peff.net> wrote:
Show 14 quoted lines
>
> On Fri, Jul 13, 2018 at 01:58:05PM -0700, Stefan Beller wrote:
>
> > > I'm sad that this strcpy() wasn't caught in review. IMHO we should avoid
> > > that function altogether, even when we _think_ it can't trigger an
> > > overflow. That's easier to reason about (and makes auditing easier).
> >
> > Can we somehow automatically find "bad code" either in pathces
> > or in new code (such as pu), e.g. as a coccicheck for these functions?
>
> I'd be happy to declare strcpy() totally banned (and it more or less
> is). I found this with a simple "git grep", though it seems like a
> trivial application of coccinelle to find it. The question is what to
> convert it into.
into some "meta BUG("your review process failed")"? :-)
Show 7 quoted lines
> xsnprintf() is often a good choice, but not always
> (e.g., if the destination isn't an array, we'd have to get the size from
> somewhere else).
>
> I wouldn't be surprised if there's a way to ask coccinelle to convert
> the easy cases and barf with an error on the hard cases or something. I
> don't know the tool very well.

I was just suggesting that tool as it is run on pu by some automation, hence it would not fall through the cracks. I mean how often to you happen to run git grep looking for strcpy on our code base and do we want to rely on that in the long run?

Stefan
Previous: Jeff KingNext: Jeff King
Message 4 of 5 in “blame: prefer xsnprintf to strcpy for colors”
  1. blame: prefer xsnprintf to strcpy for colorsJeff King, Jul 13, 2018
  2. Stefan BellerJul 13, 2018
  3. Jeff KingJul 13, 2018
  4. Stefan BellerJul 13, 2018
  5. Jeff KingJul 13, 2018

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.