mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
948ce73b31
The timestamps created by __convert_scm_timestamps only make sense for 64 bit time_t programs, 32 bit time_t programs will ignore 64 bit time_t timestamps since SO_TIMESTAMP will be defined to old values (either by glibc or kernel headers). Worse, if the buffer is not suffice MSG_CTRUNC is set to indicate it (which breaks some programs [1]). This patch makes only 64 bit time_t recvmsg and recvmmsg to call __convert_scm_timestamps. Also, the assumption to called it is changed from __ASSUME_TIME64_SYSCALLS to __TIMESIZE != 64 since the setsockopt might be called by libraries built without __TIME_BITS=64. The MSG_CTRUNC is only set for the 64 bit symbols, it should happen only if 64 bit time_t programs run older kernels. Checked on x86_64-linux-gnu and i686-linux-gnu. [1] https://github.com/systemd/systemd/pull/20567 Reviewed-by: Florian Weimer <fweimer@redhat.com> |
||
---|---|---|
.. | ||
auxv.h | ||
bitypes.h | ||
cdefs.h | ||
dir.h | ||
epoll.h | ||
errno.h | ||
fcntl.h | ||
file.h | ||
gmon_out.h | ||
gmon.h | ||
ioctl.h | ||
ipc.h | ||
mman.h | ||
msg.h | ||
param.h | ||
poll.h | ||
prctl.h | ||
profil.h | ||
queue.h | ||
random.h | ||
resource.h | ||
select.h | ||
sem.h | ||
sendfile.h | ||
shm.h | ||
signal.h | ||
single_threaded.h | ||
socket.h | ||
stat.h | ||
statfs.h | ||
statvfs.h | ||
sysinfo.h | ||
syslog.h | ||
sysmacros.h | ||
termios.h | ||
time.h | ||
timeb.h | ||
times.h | ||
ttychars.h | ||
types.h | ||
uio.h | ||
un.h | ||
unistd.h | ||
utsname.h | ||
vfs.h | ||
vlimit.h | ||
wait.h | ||
xattr.h |