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

Re: [PATCH] attr.c: move ATTR_MAX_FILE_SIZE check into read_attr_from_buf()

From
Patrick Steinhardt <ps@pks.im>
Date
May 6, 2024, 05:57 UTC
Message-ID
<ZjhxQOgRgvv7_gGY@tanuki>
In-Reply-To
<28f6267709db78ba526d7ed9fc4a734674697c70.1714763555.git.me@ttaylorr.com>
On Fri, May 03, 2024 at 03:12:36PM -0400, Taylor Blau wrote:
Show 29 quoted lines
> Commit 3c50032ff52 (attr: ignore overly large gitattributes files,
> 2022-12-01) added a defense-in-depth check to ensure that .gitattributes
> blobs read from the index do not exceed ATTR_MAX_FILE_SIZE (100 MB).
> 
> But there were two cases added shortly after 3c50032ff52 was written
> which do not apply similar protections:
> 
>   - 47cfc9bd7d0 (attr: add flag `--source` to work with tree-ish,
>     2023-01-14)
> 
>   - 4723ae1007f (attr.c: read attributes in a sparse directory,
>     2023-08-11) added a similar
> 
> Ensure that we refuse to process a .gitattributes blob exceeding
> ATTR_MAX_FILE_SIZE when reading from either an arbitrary tree object or
> a sparse directory. This is done by pushing the ATTR_MAX_FILE_SIZE check
> down into the low-level `read_attr_from_buf()`.
> 
> In doing so, plug a leak in `read_attr_from_index()` where we would
> accidentally leak the large buffer upon detecting it is too large to
> process.
> 
> (Since `read_attr_from_buf()` handles a NULL buffer input, we can remove
> a NULL check before calling it in `read_attr_from_index()` as well).
> 
> Co-authored-by: Jeff King <peff@peff.net>
> Signed-off-by: Jeff King <peff@peff.net>
> Signed-off-by: Taylor Blau <me@ttaylorr.com>
> ---
This patch looks good to me, thanks!
Patrick
Previous: Junio C Hamano
Message 3 of 3 in “attr.c: move ATTR_MAX_FILE_SIZE check into read_attr_from_buf()”
  1. attr.c: move ATTR_MAX_FILE_SIZE check into read_attr_from_buf()Taylor Blau, May 3, 2024
  2. Junio C HamanoMay 3, 2024
  3. Patrick SteinhardtMay 6, 2024

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.