Fix use-after-free in COPY (ON_ERROR)

When ON_ERROR handled a soft error, some of the contents set for the
error context callback could remain set and pointing at areas that could
be reset, leading to some use-after-frees depending on the input data
provided through COPY.

These contents are now reset at the beginning of NextCopyFrom(), before
processing the next tuple.

SET_NULL is affected down to v19, IGNORE down to v17.

Author: Gowdham M <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Reviewed-by: Shihao Zhong <[email protected]>
Discussion: 
https://postgr.es/m/[email protected]
Backpatch-through: 17

Branch
------
REL_18_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c88c71a4b52a514cf9e9582c2d657e0fc6d4ce97

Modified Files
--------------
src/backend/commands/copyfromparse.c | 4 ++++
src/test/regress/expected/copy2.out  | 4 ++++
src/test/regress/sql/copy2.sql       | 6 ++++++
3 files changed, 14 insertions(+)

Reply via email to