Re: BUG #19613: pg_restore: several SEGVs in ReadToc() in pg_backup_archiver.c

From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andrey Rachitskiy <pl0h0yp1(at)gmail(dot)com>, ilia(dot)kashintsev(at)gmail(dot)com, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #19613: pg_restore: several SEGVs in ReadToc() in pg_backup_archiver.c
Date: 2026-08-16 15:03:15
Message-ID: DD50289D-8ABC-4C75-9116-3595172A515B@yandex-team.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

> The thing you would wish
> that a regression test could catch is adding a new TOC field that is
> effectively required while failing to use ReadRequiredStr for it.
> Which a test like this wouldn't.

Agreed. I was thinking about proving the current fix, but that is not
the likely future regression.

I also considered constructing an archive with each string field set
to NULL in turn. That still requires the test to maintain its own list
of TOC fields, so a newly added field would not automatically be
covered.

We could encode the invariant in the API by making callers explicitly
choose ReadRequiredStr() or ReadNullableStr(), but that is quite a bit
more changes for a small back-patchable(?) fix.

Thank you!

Best regards, Andrey Borodin.

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Andrey Borodin 2026-08-16 16:01:18 Re: BUG #19620: pg_class index corruption caused by statement_timeout during VACUUM FULL
Previous Message Tom Lane 2026-08-16 14:32:14 Re: BUG #19612: SEGV in ParseConfigFp() in guc-file.l