git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Taylor Blau <me@ttaylorr.com>
Subject: Re: [PATCH 04/10] unpack_loose_header(): fix infinite loop on broken zlib input
Date: Tue, 25 Feb 2025 12:42:31 +0100	[thread overview]
Message-ID: <Z72sp639o8rxG1Qf@pks.im> (raw)
In-Reply-To: <20250225062958.GD1293961@coredump.intra.peff.net>

On Tue, Feb 25, 2025 at 01:29:58AM -0500, Jeff King wrote:
> diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh
> index 398865d6eb..0b0d915773 100755
> --- a/t/t1006-cat-file.sh
> +++ b/t/t1006-cat-file.sh
> @@ -903,6 +903,25 @@ test_expect_success 'cat-file -t and -s on corrupt loose object' '
>  	)
>  '
>  
> +test_expect_success 'truncated object with --allow-unknown-type' - <<\EOT
> +	objtype='a really long type name that exceeds the 32-byte limit' &&
> +	blob=$(git hash-object -w --literally -t "$objtype" /dev/null) &&
> +	objpath=.git/objects/$(test_oid_to_path "$blob") &&
> +
> +	# We want to truncate the object far enough in that we don't hit the
> +	# end while inflating the first 32 bytes (since we want to have to dig
> +	# for the trailing NUL of the header). But we don't want to go too far,
> +	# since our header isn't very big. And of course we are counting
> +	# deflated zlib bytes in the on-disk file, so it's a bit of a guess.
> +	# Empirically 50 seems to work.
> +	mv "$objpath" obj.bak &&
> +	test_when_finished 'mv obj.bak "$objpath"' &&

The order should probably be reversed here, as we nowadays tend to first
queue the cleanup before doing the actual work. Not that it really
matters in this case.

Patrick

  reply	other threads:[~2025-02-25 11:42 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-25  6:25 [PATCH 0/10] some zlib inflating bug fixes Jeff King
2025-02-25  6:28 ` [PATCH 01/10] loose_object_info(): BUG() on inflating content with unknown type Jeff King
2025-02-25 11:42   ` Patrick Steinhardt
2025-02-26  1:47   ` Junio C Hamano
2025-02-28  0:16     ` Taylor Blau
2025-03-04  6:43       ` Jeff King
2025-03-04 15:41         ` Junio C Hamano
2025-02-28  0:14   ` Taylor Blau
2025-02-25  6:29 ` [PATCH 02/10] unpack_loose_header(): simplify next_out assignment Jeff King
2025-02-28  0:18   ` Taylor Blau
2025-02-25  6:29 ` [PATCH 03/10] unpack_loose_header(): report headers without NUL as "bad" Jeff King
2025-02-25  6:29 ` [PATCH 04/10] unpack_loose_header(): fix infinite loop on broken zlib input Jeff King
2025-02-25 11:42   ` Patrick Steinhardt [this message]
2025-02-25 19:00     ` Eric Sunshine
2025-02-26 12:56   ` Junio C Hamano
2025-02-28  0:21   ` Taylor Blau
2025-02-25  6:30 ` [PATCH 05/10] git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT Jeff King
2025-02-26 13:26   ` Junio C Hamano
2025-02-28  0:31     ` Taylor Blau
2025-03-04  7:08       ` Jeff King
2025-02-25  6:30 ` [PATCH 06/10] unpack_loose_header(): avoid numeric comparison of zlib status Jeff King
2025-02-28  0:32   ` Taylor Blau
2025-03-04  6:55     ` Jeff King
2025-02-25  6:31 ` [PATCH 07/10] unpack_loose_rest(): " Jeff King
2025-02-25  6:33 ` [PATCH 08/10] unpack_loose_rest(): never clean up zstream Jeff King
2025-02-26 13:16   ` Junio C Hamano
2025-02-25  6:33 ` [PATCH 09/10] unpack_loose_rest(): simplify error handling Jeff King
2025-02-26 13:46   ` Junio C Hamano
2025-02-28  0:34   ` Taylor Blau
2025-02-25  6:34 ` [PATCH 10/10] unpack_loose_rest(): rewrite return handling for clarity Jeff King
2025-02-28  0:36   ` Taylor Blau
2025-03-04  7:10     ` Jeff King
2025-03-04 21:32       ` Taylor Blau
2025-02-28  0:38 ` [PATCH 0/10] some zlib inflating bug fixes Taylor Blau

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=Z72sp639o8rxG1Qf@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=me@ttaylorr.com \
    --cc=peff@peff.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).