aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/commit_ts.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-08-08 19:18:11 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-08-08 19:18:22 -0400
commit9bf4068cc321a4d44ac54089ab651a49d89bb567 (patch)
treebdbd01716a50de1b5e3377b1bb30d16e3e0e2db8 /src/backend/access/transam/commit_ts.c
parent77d2c00af78ee12ae0d1cea34605f1e7af3f6d93 (diff)
downloadpostgresql-9bf4068cc321a4d44ac54089ab651a49d89bb567.tar.gz
postgresql-9bf4068cc321a4d44ac54089ab651a49d89bb567.zip
Fix datumSerialize infrastructure to not crash on non-varlena data.
Commit 1efc7e538 did a poor job of emulating existing logic for touching Datums that might be expanded-object pointers. It didn't check for typlen being -1 first, which meant it could crash on fixed-length pass-by-ref values, and probably on cstring values as well. It also didn't use DatumGetPointer before VARATT_IS_EXTERNAL_EXPANDED, which while currently harmless is not according to documentation nor prevailing style. I also think the lack of any explanation as to why datumSerialize makes these particular nonobvious choices is pretty awful, so fix that. Per report from Jarred Ward. Back-patch to 9.6 where this code came in. Discussion: https://postgr.es/m/6F61E6D2-2F5E-4794-9479-A429BE1CEA4B@simple.com
Diffstat (limited to 'src/backend/access/transam/commit_ts.c')
0 files changed, 0 insertions, 0 deletions