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

Re: Git Bug Report: out of memory using git tag

From
Jeff King <peff@peff.net>
Date
Nov 2, 2022, 07:39 UTC
Message-ID
<Y2IeqOT5Ao1Qa0Zl@coredump.intra.peff.net>
In-Reply-To
<38d50c30-c6a3-5989-6e01-47c5467d9d6b@gmail.com>
On Tue, Nov 01, 2022 at 08:41:55PM -0400, Philippe Blain wrote:
Show 17 quoted lines
> > The issue isn't unique to pgp signatures; the problem is in the parsing
> > done by ref-filter's find_subpos(), so any signature type exhibits the
> > problem. At the end of that function we do:
> > 
> >       *nonsiglen = sigstart - buf;
> > 
> > but "buf" has moved beyond "sigstart". Presumably because it uses
> > strstr() to look for end-of-line in buf. Since there isn't one before
> > the signature begins, we go to the end of the signature.
> > 
> > The bug bisects to 9f75ce3d8f (ref-filter: handle CRLF at end-of-line
> > more gracefully, 2020-10-29). Before then, I think our loop was careful
> > about moving past the start of the signature. Author cc'd.
> > 
> 
> Thanks for letting me know, and for the simple reproducer, that's very useful.
> I'll try to find time to fix that this week, but can't promise anything.

After sleeping on it, I think I fully understand what's going on. There are actually _two_ bugs, but they are closely related. ;)

Here are patches which fix them both. I may be setting a new record for the ratio of commit message lines to changed code. But it took me a while to figure out what was going on, so I wanted to explain it fully.

  [1/2]: ref-filter: fix parsing of signatures without blank lines
  [2/2]: ref-filter: fix parsing of signatures with CRLF and no body
 ref-filter.c            |  8 ++++----
 t/t6300-for-each-ref.sh | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 4 deletions(-)
-Peff
Previous: Philippe BlainNext: Jeff King
Message 4 of 15 in “Git Bug Report: out of memory using git tag”
  1. Martin EnglundOct 28, 2022
  2. Jeff KingNov 1, 2022
  3. Philippe BlainNov 2, 2022
  4. Jeff KingNov 2, 2022
  5. 1/2 ref-filter: fix parsing of signatures without blank linesJeff King, Nov 2, 2022
  6. 2/2 ref-filter: fix parsing of signatures with CRLF and no bodyJeff King, Nov 2, 2022
  7. Elijah NewrenNov 2, 2022
  8. gigantic commit messages, was Re: Git Bug Report: out of memory using git tagJeff King, Nov 2, 2022
  9. Ævar Arnfjörð BjarmasonNov 2, 2022
  10. Elijah NewrenNov 2, 2022
  11. Eric SunshineNov 2, 2022
  12. Philippe BlainNov 2, 2022
  13. Jeff KingNov 3, 2022
  14. Taylor BlauNov 3, 2022
  15. Philippe BlainNov 2, 2022

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.