• Tom Lane's avatar
    Fix unsafe references to errno within error messaging logic. · 571addd7
    Tom Lane authored
    Various places were supposing that errno could be expected to hold still
    within an ereport() nest or similar contexts.  This isn't true necessarily,
    though in some cases it accidentally failed to fail depending on how the
    compiler chanced to order the subexpressions.  This class of thinko
    explains recent reports of odd failures on clang-built versions, typically
    missing or inappropriate HINT fields in messages.
    
    Problem identified by Christian Kruse, who also submitted the patch this
    commit is based on.  (I fixed a few issues in his patch and found a couple
    of additional places with the same disease.)
    
    Back-patch as appropriate to all supported branches.
    571addd7
sysv_shmem.c 21.2 KB