Skip to content

reftable: widen allocation size arguments to uintmax_t - #2255

Open
msuozzo wants to merge 2 commits into
gitgitgadget:masterfrom
msuozzo:reftable-obj-record-count
Open

msuozzo wants to merge 2 commits into
gitgitgadget:masterfrom
msuozzo:reftable-obj-record-count

Conversation

@msuozzo

@msuozzo msuozzo commented Oct 13, 2026 •

Copy link
Copy Markdown

Changes since v1:

  • Fix the truncation in reftable_alloc_size() and reftable_calloc()
    instead of checking the count in reftable_obj_record_decode()
    (Patrick, Aniket).
  • Test reftable_alloc_size() directly instead of the decoder (Aniket).
  • Move the Makefile change into its own patch (Patrick).
  • Rewrite the commit messages (Patrick).

cc: Patrick Steinhardt ps@pks.im
cc: Aniket Gupta aniketgupta3001@gmail.com

@gitgitgadget

gitgitgadget Bot commented Oct 13, 2026

Copy link
Copy Markdown

Welcome to GitGitGadget

Hi @msuozzo, and welcome to GitGitGadget, the GitHub App to send patch series to the Git mailing list from GitHub Pull Requests.

Please make sure that either:

  • Your Pull Request has a good description, if it consists of multiple commits, as it will be used as cover letter.
  • Your Pull Request description is empty, if it consists of a single commit, as the commit message should be descriptive enough by itself.

You can CC potential reviewers by adding a footer to the PR description with the following syntax:

CC: Revi Ewer <revi.ewer@example.com>, Ill Takalook <ill.takalook@example.net>

NOTE: DO NOT copy/paste your CC list from a previous GGG PR's description,
because it will result in a malformed CC list on the mailing list. See
example.

Also, it is a good idea to review the commit messages one last time, as the Git project expects them in a quite specific form:

  • the lines should not exceed 76 columns,
  • the first line should be like a header and typically start with a prefix like "tests:" or "revisions:" to state which subsystem the change is about, and
  • the commit messages' body should be describing the "why?" of the change.
  • Finally, the commit messages should end in a Signed-off-by: line matching the commits' author.

It is in general a good idea to await the automated test ("Checks") in this Pull Request before contributing the patches, e.g. to avoid trivial issues such as unportable code.

Contributing the patches

Before you can contribute the patches, your GitHub username needs to be added to the list of permitted users. Any already-permitted user can do that, by adding a comment to your PR of the form /allow. A good way to find other contributors is to locate recent pull requests where someone has been /allowed:

Both the person who commented /allow and the PR author are able to /allow you.

An alternative is the channel #git-devel on the Libera Chat IRC network:

<newcontributor> I've just created my first PR, could someone please /allow me? https://github.com/gitgitgadget/git/pull/12345
<veteran> newcontributor: it is done
<newcontributor> thanks!

Once on the list of permitted usernames, you can contribute the patches to the Git mailing list by adding a PR comment /submit.

If you want to see what email(s) would be sent for a /submit request, add a PR comment /preview to have the email(s) sent to you. You must have a public GitHub email address for this. Note that any reviewers CC'd via the list in the PR description will not actually be sent emails.

After you submit, GitGitGadget will respond with another comment that contains the link to the cover letter mail in the Git mailing list archive. Please make sure to monitor the discussion in that thread and to address comments and suggestions (while the comments and suggestions will be mirrored into the PR by GitGitGadget, you will still want to reply via mail).

If you do not want to subscribe to the Git mailing list just to be able to respond to a mail, you can download the mbox from the Git mailing list archive (click the (raw) link), then import it into your mail program. If you use GMail, you can do this via:

curl -g --user "<EMailAddress>:<Password>" \
    --url "imaps://imap.gmail.com/INBOX" -T /path/to/raw.txt

To iterate on your change, i.e. send a revised patch or patch series, you will first want to (force-)push to the same branch. You probably also want to modify your Pull Request description (or title). It is a good idea to summarize the revision by adding something like this to the cover letter (read: by editing the first comment on the PR, i.e. the PR description):

Changes since v1:
- Fixed a typo in the commit message (found by ...)
- Added a code comment to ... as suggested by ...
...

To send a new iteration, just add another PR comment with the contents: /submit.

Need help?

New contributors who want advice are encouraged to join git-mentoring@googlegroups.com, where volunteers who regularly contribute to Git are willing to answer newbie questions, give advice, or otherwise provide mentoring to interested contributors. You must join in order to post or view messages, but anyone can join.

You may also be able to find help in real time in the developer IRC channel, #git-devel on Libera Chat. Remember that IRC does not support offline messaging, so if you send someone a private message and log out, they cannot respond to you. The scrollback of #git-devel is archived, though.

@gitgitgadget

gitgitgadget Bot commented Oct 13, 2026

Copy link
Copy Markdown

Invalid author email in 9b2bc74: "1393068+msuozzo@users.noreply.github.com"

@msuozzo
msuozzo force-pushed the reftable-obj-record-count branch from 9b2bc74 to 5fb73ec Compare October 13, 2026 22:28
@dscho

dscho commented Oct 14, 2026

Copy link
Copy Markdown
Member

/allow

@gitgitgadget

gitgitgadget Bot commented Oct 14, 2026

Copy link
Copy Markdown

User msuozzo is now allowed to use GitGitGadget.

WARNING: msuozzo has no public email address set on GitHub; GitGitGadget needs an email address to Cc: you on your contribution, so that you receive any feedback on the Git mailing list. Go to https://github.com/settings/profile to make your preferred email public to let GitGitGadget know which email address to use.

@msuozzo

msuozzo commented Oct 14, 2026

Copy link
Copy Markdown
Author

/preview

@gitgitgadget

gitgitgadget Bot commented Oct 14, 2026

Copy link
Copy Markdown

Preview email sent as pull.2255.git.1791989689429.gitgitgadget@gmail.com

@msuozzo

msuozzo commented Oct 14, 2026

Copy link
Copy Markdown
Author

/submit

@gitgitgadget

gitgitgadget Bot commented Oct 14, 2026

Copy link
Copy Markdown

Submitted as pull.2255.git.1791989883899.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-2255/msuozzo/reftable-obj-record-count-v1

To fetch this version to local tag pr-2255/msuozzo/reftable-obj-record-count-v1:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-2255/msuozzo/reftable-obj-record-count-v1

@gitgitgadget

gitgitgadget Bot commented Oct 19, 2026

Copy link
Copy Markdown

Patrick Steinhardt wrote on the Git mailing list (how to reply to this email):

On Wed, Oct 14, 2026 at 02:58:03PM +0000, Matthew Suozzo via GitGitGadget wrote:
> From: Matthew Suozzo <m@suozzo.co>
> 
> An object record's count of offsets is a 64-bit varint from the table,
> and reftable_obj_record_decode() allocates the offsets array from it
> through REFTABLE_ALLOC_ARRAY(), which takes a size_t. Where size_t is
> 32 bits, a count of 2^32 + 1 allocates room for one offset, and the
> loop, which runs to the full count, writes an offset from the table
> for each varint left in the block past the end of the array. Where
> size_t is 64 bits, a large count only makes a large allocation that
> the decode then fails to fill.
> 
> Nothing in Git reaches this decoder from a repository: a block of a
> type other than the one wanted is refused before its records are
> decoded, and the object index, the only reader of object blocks, is
> used only by the unit tests. The decoder is still wrong.
> 
> Each offset takes at least a byte, so refuse a count larger than what
> is left of the record.

Sorry, but this whole commit message reads very AI-generated to me, as
it is both overly verbose and hard to parse. I would welcome it if you
could maybe touch up the message for normal human beings.

> diff --git a/Makefile b/Makefile
> index a96be506b5..66b7270fc0 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1551,6 +1551,7 @@ CLAR_TEST_SUITES += u-reftable-block
>  CLAR_TEST_SUITES += u-reftable-merged
>  CLAR_TEST_SUITES += u-reftable-pq
>  CLAR_TEST_SUITES += u-reftable-readwrite
> +CLAR_TEST_SUITES += u-reftable-record
>  CLAR_TEST_SUITES += u-reftable-stack
>  CLAR_TEST_SUITES += u-reftable-table
>  CLAR_TEST_SUITES += u-reftable-tree

Makes sense, even though this should probably have been in its own
patch.

> diff --git a/reftable/record.c b/reftable/record.c
> index 1fce441930..96eceddca7 100644
> --- a/reftable/record.c
> +++ b/reftable/record.c
> @@ -589,6 +589,10 @@ static int reftable_obj_record_decode(void *rec, struct reftable_buf key,
>  	if (count == 0)
>  		return start.len - in.len;
>  
> +	/* each offset takes at least a byte */
> +	if (count > in.len)
> +		return REFTABLE_FORMAT_ERROR;

This check doesn't really seem to match what you're describing. What you
describe is an integer overflow, but you only check for a very specific
edge ecase here. I would have expected for example that...

>  	REFTABLE_ALLOC_ARRAY(r->offsets, count);

... this line already detects the overflow and then refuses the
operation. Because `REFTABLE_ALLOC_ARRAY()` itself already tries to
check for overflows.

That being said, if you take a look at `reftable_alloc_size()` you can
see that the input is both of type `size_t`. And _that_ is indeed broken
on platforms where `size_t` is 32 bits, as we'd potentially wrap. But
that fact is not even mentioned as part of the commit message at all.

So overall I'm not convinced that this fix makes sense, we should rather
fix the source of the problem, which is `reftable_alloc_size()`.

Thanks!

Patrick

@gitgitgadget

gitgitgadget Bot commented Oct 19, 2026

Copy link
Copy Markdown

m@suozzo.co wrote on the Git mailing list (how to reply to this email):

October 19, 2026 at 3:46 AM, "Patrick Steinhardt" <ps@pks.im mailto:ps@pks.im?to=%22Patrick%20Steinhardt%22%20%3Cps%40pks.im%3E > wrote:


> 
> On Wed, Oct 14, 2026 at 02:58:03PM +0000, Matthew Suozzo via GitGitGadget wrote:
> 
> > 
> > From: Matthew Suozzo <m@suozzo.co>
> >  
> >  An object record's count of offsets is a 64-bit varint from the table,
> >  and reftable_obj_record_decode() allocates the offsets array from it
> >  through REFTABLE_ALLOC_ARRAY(), which takes a size_t. Where size_t is
> >  32 bits, a count of 2^32 + 1 allocates room for one offset, and the
> >  loop, which runs to the full count, writes an offset from the table
> >  for each varint left in the block past the end of the array. Where
> >  size_t is 64 bits, a large count only makes a large allocation that
> >  the decode then fails to fill.
> >  
> >  Nothing in Git reaches this decoder from a repository: a block of a
> >  type other than the one wanted is refused before its records are
> >  decoded, and the object index, the only reader of object blocks, is
> >  used only by the unit tests. The decoder is still wrong.
> >  
> >  Each offset takes at least a byte, so refuse a count larger than what
> >  is left of the record.
> > 
> Sorry, but this whole commit message reads very AI-generated to me, as
> it is both overly verbose and hard to parse. I would welcome it if you
> could maybe touch up the message for normal human beings.

yeah it was AI generated and i copy-edited it. it didn't feel too excessive since i wanted to be precise about the issue's mechanism, scope (32-bit only), severity (not really reachable), and describe the fix.

any pointers on how you'd reword? remove the exposition?

> 
> > 
> > diff --git a/Makefile b/Makefile
> >  index a96be506b5..66b7270fc0 100644
> >  --- a/Makefile
> >  +++ b/Makefile
> >  @@ -1551,6 +1551,7 @@ CLAR_TEST_SUITES += u-reftable-block
> >  CLAR_TEST_SUITES += u-reftable-merged
> >  CLAR_TEST_SUITES += u-reftable-pq
> >  CLAR_TEST_SUITES += u-reftable-readwrite
> >  +CLAR_TEST_SUITES += u-reftable-record
> >  CLAR_TEST_SUITES += u-reftable-stack
> >  CLAR_TEST_SUITES += u-reftable-table
> >  CLAR_TEST_SUITES += u-reftable-tree
> > 
> Makes sense, even though this should probably have been in its own
> patch.

happy to move it to a separate patch.

> 
> > 
> > diff --git a/reftable/record.c b/reftable/record.c
> >  index 1fce441930..96eceddca7 100644
> >  --- a/reftable/record.c
> >  +++ b/reftable/record.c
> >  @@ -589,6 +589,10 @@ static int reftable_obj_record_decode(void *rec, struct reftable_buf key,
> >  if (count == 0)
> >  return start.len - in.len;
> >  
> >  + /* each offset takes at least a byte */
> >  + if (count > in.len)
> >  + return REFTABLE_FORMAT_ERROR;
> > 
> This check doesn't really seem to match what you're describing. What you
> describe is an integer overflow, but you only check for a very specific
> edge ecase here. I would have expected for example that...
> 
> > 
> > REFTABLE_ALLOC_ARRAY(r->offsets, count);
> > 
> ... this line already detects the overflow and then refuses the
> operation. Because `REFTABLE_ALLOC_ARRAY()` itself already tries to
> check for overflows.
> 
> That being said, if you take a look at `reftable_alloc_size()` you can
> see that the input is both of type `size_t`. And _that_ is indeed broken
> on platforms where `size_t` is 32 bits, as we'd potentially wrap. But
> that fact is not even mentioned as part of the commit message at all.

isn't that "REFTABLE_ALLOC_ARRAY(), which takes a size_t" in the original message?

> 
> So overall I'm not convinced that this fix makes sense, we should rather
> fix the source of the problem, which is `reftable_alloc_size()`.

that felt like a pretty disruptive change i was hesitant to put up as my first patch but i'd be happy to make the change.

> 
> Thanks!
> 
> Patrick
>

@gitgitgadget

gitgitgadget Bot commented Oct 20, 2026

Copy link
Copy Markdown

Patrick Steinhardt wrote on the Git mailing list (how to reply to this email):

On Mon, Oct 19, 2026 at 05:14:08PM +0000, m@suozzo.co wrote:
> October 19, 2026 at 3:46 AM, "Patrick Steinhardt" <ps@pks.im mailto:ps@pks.im?to=%22Patrick%20Steinhardt%22%20%3Cps%40pks.im%3E > wrote:
> > On Wed, Oct 14, 2026 at 02:58:03PM +0000, Matthew Suozzo via GitGitGadget wrote:
> > > From: Matthew Suozzo <m@suozzo.co>
> > >  
> > >  An object record's count of offsets is a 64-bit varint from the table,
> > >  and reftable_obj_record_decode() allocates the offsets array from it
> > >  through REFTABLE_ALLOC_ARRAY(), which takes a size_t. Where size_t is
> > >  32 bits, a count of 2^32 + 1 allocates room for one offset, and the
> > >  loop, which runs to the full count, writes an offset from the table
> > >  for each varint left in the block past the end of the array. Where
> > >  size_t is 64 bits, a large count only makes a large allocation that
> > >  the decode then fails to fill.
> > >  
> > >  Nothing in Git reaches this decoder from a repository: a block of a
> > >  type other than the one wanted is refused before its records are
> > >  decoded, and the object index, the only reader of object blocks, is
> > >  used only by the unit tests. The decoder is still wrong.
> > >  
> > >  Each offset takes at least a byte, so refuse a count larger than what
> > >  is left of the record.
> > > 
> > Sorry, but this whole commit message reads very AI-generated to me, as
> > it is both overly verbose and hard to parse. I would welcome it if you
> > could maybe touch up the message for normal human beings.
> 
> yeah it was AI generated and i copy-edited it. it didn't feel too
> excessive since i wanted to be precise about the issue's mechanism,
> scope (32-bit only), severity (not really reachable), and describe the
> fix.
> 
> any pointers on how you'd reword? remove the exposition?

It's hard to say. With AI-generated commit messages you very often have
the feeling that you end up understanding everything and nothing. It
just feels off in a way that is hard to describe, and consequently it's
also hard to say what exactly needs changing.

My typical suggestion is to not use AI to write your commit message at
all and instead write it yourself. Commit messages have always been the
place where you can demonstrate that you understand what you are doing
as part of the patch by properly explaining it in a way that another
human being understands it. And I think that role is becoming even more
important now: in a world where we cannot trust that the contributor has
the slightest understanding of what they are contributing, they need to
go the extra mile to prove it to us by having a well-written explanation
thereof.

I know that this is putting more of a burden on contributors, and I'm
not a fan of that. But I think it's becoming abundantly clear that AI
does not really give open communities much of a choice, at least not if
they want to keep standards high.

> > > diff --git a/reftable/record.c b/reftable/record.c
> > >  index 1fce441930..96eceddca7 100644
> > >  --- a/reftable/record.c
> > >  +++ b/reftable/record.c
> > >  @@ -589,6 +589,10 @@ static int reftable_obj_record_decode(void *rec, struct reftable_buf key,
> > >  if (count == 0)
> > >  return start.len - in.len;
> > >  
> > >  + /* each offset takes at least a byte */
> > >  + if (count > in.len)
> > >  + return REFTABLE_FORMAT_ERROR;
> > > 
> > This check doesn't really seem to match what you're describing. What you
> > describe is an integer overflow, but you only check for a very specific
> > edge ecase here. I would have expected for example that...
> > 
> > > 
> > > REFTABLE_ALLOC_ARRAY(r->offsets, count);
> > > 
> > ... this line already detects the overflow and then refuses the
> > operation. Because `REFTABLE_ALLOC_ARRAY()` itself already tries to
> > check for overflows.
> > 
> > That being said, if you take a look at `reftable_alloc_size()` you can
> > see that the input is both of type `size_t`. And _that_ is indeed broken
> > on platforms where `size_t` is 32 bits, as we'd potentially wrap. But
> > that fact is not even mentioned as part of the commit message at all.
> 
> isn't that "REFTABLE_ALLOC_ARRAY(), which takes a size_t" in the original message?

Ugh, no idea how I missed that. Probably because my brain was sucked out
while reading it.

> > So overall I'm not convinced that this fix makes sense, we should rather
> > fix the source of the problem, which is `reftable_alloc_size()`.
> 
> that felt like a pretty disruptive change i was hesitant to put up as
> my first patch but i'd be happy to make the change.

Hm, I wouldn't call it disruptive but rather holistic. By fixing that
one function we also implicitly fix all the other callers that may
currently be wrong. And in the end nothing really changes for callers
anyway: I'd change the parameters to be of type `uintmax_t`, but the
return value should probably remain a `size_t`. So we'd continue to work
just fine in all cases where there is no overflow of `size_t`, but we'd
properly detect cases where the parameters themselves already overflow
it.

Patrick

@gitgitgadget

gitgitgadget Bot commented Oct 20, 2026

Copy link
Copy Markdown

Junio C Hamano wrote on the Git mailing list (how to reply to this email):

Patrick Steinhardt <ps@pks.im> writes:

> It's hard to say. With AI-generated commit messages you very often have
> the feeling that you end up understanding everything and nothing. It
> just feels off in a way that is hard to describe, and consequently it's
> also hard to say what exactly needs changing.
>
> My typical suggestion is to not use AI to write your commit message at
> all and instead write it yourself. Commit messages have always been the
> place where you can demonstrate that you understand what you are doing
> as part of the patch by properly explaining it in a way that another
> human being understands it. And I think that role is becoming even more
> important now: in a world where we cannot trust that the contributor has
> the slightest understanding of what they are contributing, they need to
> go the extra mile to prove it to us by having a well-written explanation
> thereof.
>
> I know that this is putting more of a burden on contributors, and I'm
> not a fan of that. But I think it's becoming abundantly clear that AI
> does not really give open communities much of a choice, at least not if
> they want to keep standards high.

Putting more burden on the user is fine, and the AI output, when
used correctly, can be not so bad.

Having said that, the real problem is that nobody seems to guide
generative AI machinery well enough to make intelligible output.  In
order for a user to guide the machinery well enough, they must know
what they want to discuss, and the output would be different from
what a clueless and hands-off "here is a bug report from somewhere I
saw, I do not understand the system well enough, solve it and
describe the solution" prompt would result in.

Writing the first draft manually and having a machine check and
correct typos and grammar is not a bad practice, as you remain in
control of the overall structure and contents of the final result.

Going in the other direction?  If you are not familiar with the area
and are easily fooled by intelligent-sounding nonsense uttered by
generative AI, correcting such nonsense into a usable shape would be
difficult, and would make those on the receiving end who have to
read it miserable.

By the way, I cannot help but wonder what happened to the AI policy
discussion that the contributors' summit promised we would have
soon.  Who is organizing it?

@gitgitgadget

gitgitgadget Bot commented Oct 20, 2026

Copy link
Copy Markdown

Patrick Steinhardt wrote on the Git mailing list (how to reply to this email):

On Tue, Oct 20, 2026 at 08:08:01AM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
[snip]
> By the way, I cannot help but wonder what happened to the AI policy
> discussion that the contributors' summit promised we would have
> soon.  Who is organizing it?

I think Emily wanted to kick it off, if I'm not mistaken.

Patrick

@gitgitgadget

gitgitgadget Bot commented Oct 20, 2026

Copy link
Copy Markdown

Aniket Gupta wrote on the Git mailing list (how to reply to this email):

Hi Matthew,

> By fixing that one function we also implicitly fix all the other
> callers that may currently be wrong.

I tried Patrick's change on a 32 bit build and it works for
REFTABLE_ALLOC_ARRAY. However REFTABLE_CALLOC_ARRAY goes straight to
reftable_calloc() with a size_t and gets truncated. I think no one
passes a 64 bit count to it so nothing breaks but maybe worth a
mention in the commit message?

Also the new test passes because of the count > in.len check. If
that check goes away in v2 I think it might need a different test
since on 64 bit nothing truncates. Maybe we can test
reftable_alloc_size() directly?

Aniket

@gitgitgadget

gitgitgadget Bot commented Oct 20, 2026

Copy link
Copy Markdown

User Aniket Gupta <aniketgupta3001@gmail.com> has been added to the cc: list.

The Meson build includes the reftable record unit tests, but the
Makefile does not. The suite was dropped from the Makefile when the
test was converted to the clar framework in 2596bef (2025-07-24).

Include the reftable record unit test suite in the Makefile test
target.

Assisted-by: Claude Fable 5.1
Signed-off-by: Matthew Suozzo <m@suozzo.co>
reftable_alloc_size() takes its arguments as size_t, but
reftable_obj_record_decode() passes it a uint64_t count. On 32-bit
platforms, a count wider than 32 bits is truncated before the overflow
check, so the decoder can get a small allocation for a large count and
write past its end. reftable_calloc() takes size_t arguments the same
way.

Make reftable_alloc_size() and reftable_calloc() take uintmax_t
arguments, so the check sees the full count.

Assisted-by: Claude Opus 5.5
Helped-by: Patrick Steinhardt <ps@pks.im>
Helped-by: Aniket Gupta <aniketgupta3001@gmail.com>
Signed-off-by: Matthew Suozzo <m@suozzo.co>
@msuozzo
msuozzo force-pushed the reftable-obj-record-count branch from 5fb73ec to 8f4a838 Compare October 21, 2026 19:22
@msuozzo msuozzo changed the title reftable/record: bound an object record's offset count by its length reftable: widen allocation size arguments to uintmax_t Oct 21, 2026
@msuozzo

msuozzo commented Oct 21, 2026

Copy link
Copy Markdown
Author

/preview

@gitgitgadget

gitgitgadget Bot commented Oct 21, 2026

Copy link
Copy Markdown

Preview email sent as pull.2255.v2.git.1792614713.gitgitgadget@gmail.com

@msuozzo

msuozzo commented Oct 21, 2026

Copy link
Copy Markdown
Author

/submit

@gitgitgadget

gitgitgadget Bot commented Oct 21, 2026

Copy link
Copy Markdown

Submitted as pull.2255.v2.git.1792616615.gitgitgadget@gmail.com

To fetch this version into FETCH_HEAD:

git fetch https://github.com/gitgitgadget/git/ pr-2255/msuozzo/reftable-obj-record-count-v2

To fetch this version to local tag pr-2255/msuozzo/reftable-obj-record-count-v2:

git fetch --no-tags https://github.com/gitgitgadget/git/ tag pr-2255/msuozzo/reftable-obj-record-count-v2

@gitgitgadget

gitgitgadget Bot commented Oct 23, 2026

Copy link
Copy Markdown

This branch is now known as ms/reftable-alloc-size-truncation.

@gitgitgadget

gitgitgadget Bot commented Oct 23, 2026

Copy link
Copy Markdown

This patch series was integrated into seen via git@74d7c17.

@gitgitgadget gitgitgadget Bot added the seen label Oct 23, 2026
@gitgitgadget

gitgitgadget Bot commented Oct 26, 2026

Copy link
Copy Markdown

There was a status update in the "New Topics" section about the branch ms/reftable-alloc-size-truncation on the Git mailing list:

The allocation size validation and memory allocation functions in the
reftable backend have been updated to use 'uintmax_t' for their size
and element count arguments. This prevents wide values from being
truncated to 'size_t' on 32-bit platforms before the allocation size
overflow check is performed.

Needs review.
source: <pull.2255.v2.git.1792616615.gitgitgadget@gmail.com>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants