summaryrefslogtreecommitdiff
path: root/contrib/array
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2025-10-19 14:36:58 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2025-10-19 14:36:58 -0400
commit277dec6514728e2d0d87c1279dd5e0afbf897428 (patch)
tree701bd96950587112469298c10c6636cadad386e1 /contrib/array
parentdd766a441d69d16d1c8ab0d3a41a10649702d202 (diff)
Don't rely on zlib's gzgetc() macro.
It emerges that zlib's configuration logic is not robust enough to guarantee that the macro will have the same ideas about struct field layout as the library itself does, leading to corruption of zlib's state struct followed by unintelligible failure messages. This hazard has existed for a long time, but we'd not noticed for several reasons: (1) We only use gzgetc() when trying to read a manually-compressed TOC file within a directory-format dump, which is a rarely-used scenario that we weren't even testing before 20ec99589. (2) No corruption actually occurs unless sizeof(long) is different from sizeof(off_t) and the platform is big-endian. (3) Some platforms have already fixed the configuration instability, at least sufficiently for their environments. Despite (3), it seems foolish to assume that the problem isn't going to be present in some environments for a long time to come. Hence, avoid relying on this macro. We can just #undef it and fall back on the underlying function of the same name. Author: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/2122679.1760846783@sss.pgh.pa.us Backpatch-through: 13
Diffstat (limited to 'contrib/array')
0 files changed, 0 insertions, 0 deletions