pgsql: Fix assorted small bugs in ThrowErrorData().

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix assorted small bugs in ThrowErrorData().
Дата
Msg-id E1bdLin-0000x8-Jc@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix assorted small bugs in ThrowErrorData().

Copy the palloc'd strings into the correct context, ie ErrorContext
not wherever the source ErrorData is.  This would be a large bug,
except that it appears that all catchers of thrown errors do either
EmitErrorReport or CopyErrorData before doing anything that would
cause transient memory contexts to be cleaned up.  Still, it's wrong
and it will bite somebody someday.

Fix failure to copy cursorpos and internalpos.

Utter the appropriate incantations involving recursion_depth, so that
we'll behave sanely if we get an error inside pstrdup.  (In general,
the body of this function ought to act like, eg, errdetail().)

Per code reading induced by Jakob Egger's report.

Branch
------
REL9_6_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/6e47c6cf7de30b9f6a6b31eb7d4af80039a16920

Modified Files
--------------
src/backend/utils/error/elog.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Put static forward declarations in elog.c back into same order a
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix potential memory leakage from HandleParallelMessages().