diff options
| author | Patrick Steinhardt <ps@pks.im> | 2024-12-22 08:24:29 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-12-22 00:58:23 -0800 |
| commit | 5ab83521cfe687e4295f5748f2c5d2aa7477efe5 (patch) | |
| tree | b76270681a8dac7c2ff4e3deb39b96297541e979 /diff.c | |
| parent | reftable/stack: don't perform auto-compaction with less than two tables (diff) | |
| download | git-5ab83521cfe687e4295f5748f2c5d2aa7477efe5.tar.gz git-5ab83521cfe687e4295f5748f2c5d2aa7477efe5.zip | |
reftable/merged: fix zero-sized allocation when there are no readers
It was reported [1] that Git started to fail with an out-of-memory error
when initializing repositories with the reftable backend on NonStop
platforms. A bisect led to 802c0646ac (reftable/merged: handle
allocation failures in `merged_table_init_iter()`, 2024-10-02), which
changed how we allocate memory when initializing a merged table.
The root cause of this seems to be that NonStop returns a `NULL` pointer
when doing a zero-sized allocation. This would've already happened
before the above change, but we never noticed because we did not check
the result. Now we do notice and thus return an out-of-memory error to
the caller.
Fix the issue by skipping the allocation altogether in case there are no
readers.
[1]: <00ad01db5017$aa9ce340$ffd6a9c0$@nexbridge.com>
Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff.c')
0 files changed, 0 insertions, 0 deletions
