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

Re: [PATCH 1/3] normalize_path_copy(): document "dst" size expectations

From
Jeff King <peff@peff.net>
Date
Jan 31, 2020, 08:45 UTC
Message-ID
<20200131084535.GA2857810@coredump.intra.peff.net>
In-Reply-To
<20200130201247.GA26000@syl.local>
On Thu, Jan 30, 2020 at 12:12:47PM -0800, Taylor Blau wrote:
Show 10 quoted lines
> > @@ -1077,6 +1077,8 @@ const char *remove_leading_path(const char *in, const char *prefix)
> >
> >  /*
> >   * It is okay if dst == src, but they should not overlap otherwise.
> > + * The "dst" buffer must be at least as long as "src"; normalizing may shrink
> > + * the size of the path, but will never grow it.
> 
> Thanks for documenting this. It's quite helpful, and hopefully should
> prevent bugs like the one you alluded to in your cover letter from
> getting in in the future.

To be picky, I didn't find an actual bug around buffer lengths; the problem was a failure to check the error code. This was just something I happened to find confusing auditing the code.

-Peff
Previous: Taylor BlauNext: Jeff King
Message 4 of 13 in “some minor memory allocation cleanups”
  1. 0/3 some minor memory allocation cleanupsJeff King, Jan 30, 2020
  2. 1/3 normalize_path_copy(): document "dst" size expectationsJeff King, Jan 30, 2020
  3. Taylor BlauJan 30, 2020
  4. Jeff KingJan 31, 2020
  5. 2/3 walker_fetch(): avoid raw array length computationJeff King, Jan 30, 2020
  6. 3/3 traverse_trees(): use stack array for name entriesJeff King, Jan 30, 2020
  7. Elijah NewrenJan 30, 2020
  8. Jeff KingJan 31, 2020
  9. Elijah NewrenJan 31, 2020
  10. tree-walk.c: break circular dependency with unpack-treesJeff King, Feb 1, 2020
  11. Elijah NewrenFeb 1, 2020
  12. Elijah NewrenJan 30, 2020
  13. Taylor BlauJan 30, 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.