git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Patrick Steinhardt <ps@pks.im>
Cc: Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org,
	 Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: [PATCH] Always check the return value of `repo_read_object_file()`
Date: Tue, 06 Feb 2024 10:42:14 -0800	[thread overview]
Message-ID: <xmqq1q9pige1.fsf@gitster.g> (raw)
In-Reply-To: <ZcHW_bc6N5umk2G4@tanuki> (Patrick Steinhardt's message of "Tue, 6 Feb 2024 07:51:41 +0100")

Patrick Steinhardt <ps@pks.im> writes:

>>  			mmfile[i].ptr = repo_read_object_file(the_repository,
>>  							      &ce->oid, &type,
>>  							      &size);
>> +			if (!mmfile[i].ptr)
>> +				die(_("unable to read %s"),
>> +				    oid_to_hex(&ce->oid));
>>  			mmfile[i].size = size;
>>  		}
>>  	}
>
> A few lines below this we check whether `mmfile[i].ptr` is `NULL` and
> replace it with the empty string if so. So this patch here is basically
> a change in behaviour where we now die instead of falling back to the
> empty value.

I think that one is trying to cope with cases where we genuinely do
not have all three variants, not "we thought we had this variant so
we tried to read it into mmfile[i].{ptr,size}, but it turns out that
the object name we had was bad".  So the fallback code for an entirely
different case was masking the breakage the above hunk fixes, and
this being "rerere", it is better to be cautious than sorry.

Thanks for reading the original code carefully.


  reply	other threads:[~2024-02-06 18:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-05 14:35 [PATCH] Always check the return value of `repo_read_object_file()` Johannes Schindelin via GitGitGadget
2024-02-05 16:10 ` Karthik Nayak
2024-02-06 18:36   ` Junio C Hamano
2024-02-12 23:16   ` Johannes Schindelin
2024-02-06  1:13 ` Kyle Lippincott
2024-02-09  8:06   ` Johannes Schindelin
2024-02-09 16:37     ` Junio C Hamano
2024-02-09 19:56     ` Kyle Lippincott
2024-02-06  6:51 ` Patrick Steinhardt
2024-02-06 18:42   ` Junio C Hamano [this message]
2024-02-09  8:15   ` Johannes Schindelin
2024-02-09  8:17     ` Patrick Steinhardt
2024-02-06 22:02 ` Junio C Hamano
2024-02-12 23:19   ` Johannes Schindelin
2024-02-16  6:43 ` Teng Long
2024-02-18 22:36   ` Johannes Schindelin

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=xmqq1q9pige1.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=ps@pks.im \
    /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).