Don't read fields of a misaligned ExpandedObjectHeader or AnyArrayType. UBSan complains about this. Instead, cast to a suitable type requiring only 4-byte alignment. DatumGetAnyArrayP() already assumes one can cast between AnyArrayType and ArrayType, so this doesn't introduce a new assumption. Back-patch to 9.5, where AnyArrayType was introduced.
Reviewed by Tom Lane. Discussion: https://postgr.es/m/20190629210334.ga1244...@rfd.leadboat.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/459c3cdb4ad8323bfe6bcae0186a3831e0c89c94 Modified Files -------------- src/backend/utils/adt/arrayfuncs.c | 2 +- src/include/utils/array.h | 19 +++++++++++++------ src/include/utils/arrayaccess.h | 4 ++-- src/include/utils/expandeddatum.h | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-)