pgsql: Fix null-pointer crash in postgres_fdw's conversion_error_callba

Started by Tom Lanealmost 5 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Fix null-pointer crash in postgres_fdw's conversion_error_callback.

Commit c7b7311f6 adjusted conversion_error_callback to always use
information from the query's rangetable, to avoid doing catalog lookups
in an already-failed transaction. However, as a result of the utterly
inadequate documentation for make_tuple_from_result_row, I failed to
realize that fsstate could be NULL in some contexts. That led to a
crash if we got a conversion error in such a context. Fix by falling
back to the previous coding when fsstate is NULL. Improve the
commentary, too.

Per report from Andrey Borodin. Back-patch to 9.6, like the previous
patch.

Discussion: /messages/by-id/08916396-55E4-4D68-AB3A-BD6066F9E5C0@yandex-team.ru

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/88807757d7409fa655458679a78a52b4406cf601

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 3 +
contrib/postgres_fdw/postgres_fdw.c | 114 ++++++++++++++++---------
contrib/postgres_fdw/sql/postgres_fdw.sql | 1 +
3 files changed, 80 insertions(+), 38 deletions(-)