Handle unaligned SerializeSnapshot() buffer.
Noah Misch <noah@leadboat.com>
Handle unaligned SerializeSnapshot() buffer. Likewise in RestoreSnapshot(). Do so by copying between the user buffer and a stack buffer of known alignment. Back-patch to 9.6, where this last applies cleanly. In master, the select_parallel test dies with SIGBUS on "Oracle Solaris 10 1/13 s10s_u11wos_24a SPARC", building 32-bit with gcc 4.9.2. In 9.6 and 9.5, the buffers in question happen to be sufficiently-aligned, and this change is mere insurance against future 9.6 changes or extension code compromising that.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/time/snapmgr.c | modified | +40 −36 |