fix corrupt sysvipc timestamps on 32-bit archs with old kernels
authorRich Felker <dalias@aerifal.cx>
Fri, 13 Mar 2020 20:27:10 +0000 (16:27 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 15 Mar 2020 01:23:37 +0000 (21:23 -0400)
commit2b2c8aafce9d80f9d58652643538f4d58e82b856
tree12fe8c1190cef866cf469777ca00fd3b7252a072
parent5db475f0b987bfa7935a117aac81e14a98de34fb
fix corrupt sysvipc timestamps on 32-bit archs with old kernels

kernel commit 4693916846269d633a3664586650dbfac2c5562f (first included
in release v4.14) silently fixed a bug whereby the reserved space
(which was later used for high bits of time) in IPC_STAT structures
was left untouched rather than zeroed. this means that a caller that
wants to read the high bits needs to pre-zero the memory.

since it's not clear that these operations are permitted to modify the
destination buffer on failure, use a temp buffer and copy back to the
caller's buffer on success.
src/ipc/msgctl.c
src/ipc/semctl.c
src/ipc/shmctl.c