commit | 7f8ece11c8779a55b63399e21ec53a7a2ff743fc | [log] [tgz] |
---|---|---|
author | Dmitry V. Levin <ldv@altlinux.org> | Fri Jul 15 17:46:07 2016 +0000 |
committer | Dmitry V. Levin <ldv@altlinux.org> | Mon Jul 18 22:12:45 2016 +0000 |
tree | 35dce47b62472d9e7fde6e1625012b04019180fb | |
parent | c5d69183af17e4fe7080f3e6835d16ca7f35b40f [diff] |
Fix race condition in decoding timeout argument of recvmmsg syscall As the value returned by sprint_timespec points to a static area and may be overwritten by subsequent calls to sprint_timespec, it is not safe to save this value on entering syscall and use it later on exiting. * mmsghdr.c (SYS_FUNC(recvmmsg)): On entering syscall, copy the value returned by sprint_timespec to a dynamically allocated memory, and save the pointer using set_tcb_priv_data. On exiting, restore it using get_tcb_priv_data.
This is strace -- a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.
strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYING for details.
See the file NEWS for information on what has changed in recent versions.
Please send bug reports and enhancements to the strace mailing list.