Fix pfree crash in pg_get_role_ddl() and pg_get_database_ddl().
Andrew Dunstan <andrew@dunslane.net>
Fix pfree crash in pg_get_role_ddl() and pg_get_database_ddl(). DatumGetArrayTypeP() can return a pointer into the tuple when the datum is stored as a short varlena, so pfree() on the result crashes. Use DatumGetArrayTypePCopy() to always get a palloc'd copy. Bug introduced in 76e514ebb4b and a4f774cf1c7. Reported-by: Jeff Davis <pgsql@j-davis.com> Author: Satya Narlapuram <satya.narlapuram@gmail.com> Discussion: https://postgr.es/m/CAHg+QDdWtv9PKtPZEokwGCNtbv4MVnfYw5wMZrsEj4xizSNe5Q@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/ddlutils.c | modified | +2 −2 |
Discussion
- pg_get__*_ddl consolidation 36 messages · 2026-03-19 → 2026-06-28