All of lore.kernel.org
 help / color / mirror / Atom feed
From: Taylor Blau <me@ttaylorr.com>
To: Jeff King <peff@peff.net>
Cc: Jonas Haag <jonas@lophus.org>,
	"brian m. carlson" <sandals@crustytoothpaste.net>,
	git@vger.kernel.org
Subject: Re: Infinite loop + memory leak in annotate_refs_with_symref_info
Date: Tue, 11 Apr 2023 17:22:02 -0400	[thread overview]
Message-ID: <ZDXPemH0d3YWnpjL@nand.local> (raw)
In-Reply-To: <20230411211604.GB626331@coredump.intra.peff.net>

On Tue, Apr 11, 2023 at 05:16:04PM -0400, Jeff King wrote:
> On Tue, Apr 11, 2023 at 05:06:33PM -0400, Jeff King wrote:
>
> > On Tue, Apr 11, 2023 at 10:53:59PM +0300, Jonas Haag wrote:
> >
> > > There is an infinite loop with an accompanying memory leak in
> > > annotate_refs_with_symref_info that was introduced in Git 2.28 (I
> > > think in commit 2c6a403: “connect: add function to parse multiple v1
> > > capability values”).
> >
> > Have you tried to reproduce with a more recent version of Git? This
> > sounds a lot like the bug fixed in 44d2aec6e8 (connect: also update
> > offset for features without values, 2021-09-26), which is in v2.33.1.
>
> Never mind. I was able to reproduce (I never used klaus, but it's
> packaged for Debian, so it was pretty easy to do). And yes, the problem
> still exists today. And bisection confirms it's from 2c6a403.

Yeah, same here. I hadn't used it either, but it's easily installable
via pip, too. Indeed, you can see the value of *offset jumping backwards
in `connect.c::parse_value_value()` (whose caller in this case is
`connect.c::annotate_refs_with_symref_info()`).

Thanks,
Taylor

  reply	other threads:[~2023-04-11 21:22 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-11 19:53 Infinite loop + memory leak in annotate_refs_with_symref_info Jonas Haag
2023-04-11 20:25 ` Taylor Blau
2023-04-11 23:59   ` Taylor Blau
2023-04-12  0:53   ` brian m. carlson
2023-04-11 21:06 ` Jeff King
2023-04-11 21:16   ` Jeff King
2023-04-11 21:22     ` Taylor Blau [this message]
2023-04-11 21:58       ` Jeff King
2023-04-11 22:52         ` Junio C Hamano
2023-04-12  6:23           ` [PATCH 0/7] v0 multiple-symref infinite loop fix and test cleanup Jeff King
2023-04-12  6:29             ` [PATCH 1/7] v0 protocol: fix infinite loop when parsing multi-valued capabilities Jeff King
2023-04-12  6:46               ` Jeff King
2023-04-12  7:25                 ` [PATCH v2 " Jeff King
2023-04-12  7:26                   ` Jeff King
2023-04-12  6:29             ` [PATCH 2/7] t5512: stop referring to "v1" protocol Jeff King
2023-04-12  6:31             ` [PATCH 3/7] t5512: stop using jgit for capabilities^{} test Jeff King
2023-04-12  9:04               ` Jeff King
2023-04-14 21:24                 ` [PATCH v3 0/7] v0 multiple-symref infinite loop fix and test cleanup Jeff King
2023-04-14 21:24                   ` [PATCH v3 1/7] v0 protocol: fix infinite loop when parsing multi-valued capabilities Jeff King
2023-04-14 21:24                   ` [PATCH v3 2/7] t5512: stop referring to "v1" protocol Jeff King
2023-04-14 21:25                   ` [PATCH v3 3/7] v0 protocol: fix sha1/sha256 confusion for capabilities^{} Jeff King
2023-04-14 21:25                   ` [PATCH v3 4/7] t5512: add v2 support for "ls-remote --symref" test Jeff King
2023-04-14 21:25                   ` [PATCH v3 5/7] t5512: allow any protocol version for filtered symref test Jeff King
2023-04-14 21:25                   ` [PATCH v3 6/7] t5512: test "ls-remote --heads --symref" filtering with v0 and v2 Jeff King
2023-04-14 21:25                   ` [PATCH v3 7/7] v0 protocol: use size_t for capability length/offset Jeff King
2023-04-17 16:06                   ` [PATCH v3 0/7] v0 multiple-symref infinite loop fix and test cleanup Junio C Hamano
2023-04-12  6:34             ` [PATCH 4/7] t5512: add v2 support for "ls-remote --symref" test Jeff King
2023-04-12  6:35             ` [PATCH 5/7] t5512: allow any protocol version for filtered symref test Jeff King
2023-04-12  6:37             ` [PATCH 6/7] t5512: test "ls-remote --heads --symref" filtering with v0 and v2 Jeff King
2023-04-12  6:40             ` [PATCH 7/7] v0 protocol: use size_t for capability length/offset Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZDXPemH0d3YWnpjL@nand.local \
    --to=me@ttaylorr.com \
    --cc=git@vger.kernel.org \
    --cc=jonas@lophus.org \
    --cc=peff@peff.net \
    --cc=sandals@crustytoothpaste.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.