12887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===-- sanitizer_common_syscalls.inc ---------------------------*- C++ -*-===// 22887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// 32887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// The LLVM Compiler Infrastructure 42887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// 52887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// This file is distributed under the University of Illinois Open Source 62887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// License. See LICENSE.TXT for details. 72887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// 82887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===----------------------------------------------------------------------===// 92887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// 102887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Common syscalls handlers for tools like AddressSanitizer, 112887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// ThreadSanitizer, MemorySanitizer, etc. 122887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// 132887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// This file should be included into the tool's interceptor file, 142887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// which has to define it's own macros: 152887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// COMMON_SYSCALL_PRE_READ_RANGE 162887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Called in prehook for regions that will be read by the kernel and 172887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// must be initialized. 182887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// COMMON_SYSCALL_PRE_WRITE_RANGE 192887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Called in prehook for regions that will be written to by the kernel 202887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// and must be addressable. The actual write range may be smaller than 212887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// reported in the prehook. See POST_WRITE_RANGE. 222887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// COMMON_SYSCALL_POST_READ_RANGE 232887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Called in posthook for regions that were read by the kernel. Does 242887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// not make much sense. 252887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// COMMON_SYSCALL_POST_WRITE_RANGE 262887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// Called in posthook for regions that were written to by the kernel 272887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// and are now initialized. 282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// COMMON_SYSCALL_ACQUIRE(addr) 292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Acquire memory visibility from addr. 302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// COMMON_SYSCALL_RELEASE(addr) 312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Release memory visibility to addr. 32b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov// COMMON_SYSCALL_FD_CLOSE(fd) 33b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov// Called before closing file descriptor fd. 342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// COMMON_SYSCALL_FD_ACQUIRE(fd) 352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Acquire memory visibility from fd. 362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// COMMON_SYSCALL_FD_RELEASE(fd) 372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Release memory visibility to fd. 386c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov// COMMON_SYSCALL_PRE_FORK() 396c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov// Called before fork syscall. 406c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov// COMMON_SYSCALL_POST_FORK(long res) 416c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov// Called after fork syscall. 422887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov//===----------------------------------------------------------------------===// 432887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 44639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#include "sanitizer_platform.h" 45639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#if SANITIZER_LINUX 46639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 47639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#include "sanitizer_libc.h" 48639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 492887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_SYSCALL(name) \ 50639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_pre_impl_##name 512887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_READ(p, s) COMMON_SYSCALL_PRE_READ_RANGE(p, s) 522887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define PRE_WRITE(p, s) COMMON_SYSCALL_PRE_WRITE_RANGE(p, s) 532887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 542887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_SYSCALL(name) \ 55639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_syscall_post_impl_##name 562887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_READ(p, s) COMMON_SYSCALL_POST_READ_RANGE(p, s) 572887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov#define POST_WRITE(p, s) COMMON_SYSCALL_POST_WRITE_RANGE(p, s) 582887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 592d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_ACQUIRE 602d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_ACQUIRE(addr) ((void)(addr)) 612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif 622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 632d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_RELEASE 642d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_RELEASE(addr) ((void)(addr)) 652d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif 662d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 67b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov#ifndef COMMON_SYSCALL_FD_CLOSE 682d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_CLOSE(fd) ((void)(fd)) 692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif 702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_FD_ACQUIRE 722d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_ACQUIRE(fd) ((void)(fd)) 732d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#endif 742d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 752d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef COMMON_SYSCALL_FD_RELEASE 762d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_FD_RELEASE(fd) ((void)(fd)) 77b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov#endif 78639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 796c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#ifndef COMMON_SYSCALL_PRE_FORK 802d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_PRE_FORK() {} 816c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#endif 826c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 836c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#ifndef COMMON_SYSCALL_POST_FORK 842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# define COMMON_SYSCALL_POST_FORK(res) {} 856c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov#endif 866c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 872887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such). 882887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 892887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovextern "C" { 902887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovstruct sanitizer_kernel_iovec { 912887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov void *iov_base; 922887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov unsigned long iov_len; 932887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}; 942887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 952887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanovstruct sanitizer_kernel_msghdr { 962887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov void *msg_name; 972887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov int msg_namelen; 982887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov struct sanitizer_kernel_iovec *msg_iov; 992887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov unsigned long msg_iovlen; 1002887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov void *msg_control; 1012887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov unsigned long msg_controllen; 1022887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov unsigned msg_flags; 1032887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov}; 1042887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstruct sanitizer_kernel_mmsghdr { 106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov struct sanitizer_kernel_msghdr msg_hdr; 107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov unsigned msg_len; 108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}; 109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1108b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanovstruct sanitizer_kernel_timespec { 1118b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov long tv_sec; 1128b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov long tv_nsec; 1138b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov}; 1148b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov 115fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanovstruct sanitizer_kernel_timeval { 116fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov long tv_sec; 117fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov long tv_usec; 118fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov}; 119fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov 120fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanovstruct sanitizer_kernel_rusage { 121fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov struct sanitizer_kernel_timeval ru_timeval[2]; 122fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov long ru_long[14]; 123fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov}; 124fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov 125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstruct sanitizer_kernel_sockaddr { 126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov unsigned short sa_family; 127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov char sa_data[14]; 128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov}; 129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1305f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov// Real sigset size is always passed as a syscall argument. 1315f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov// Declare it "void" to catch sizeof(kernel_sigset_t). 1325f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukovtypedef void kernel_sigset_t; 1335f4984db88b7b67539f62d7653b928aeadf91b16Dmitry Vyukov 134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstatic void kernel_write_iovec(const __sanitizer_iovec *iovec, 135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SIZE_T iovlen, SIZE_T maxlen) { 136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov for (SIZE_T i = 0; i < iovlen && maxlen; ++i) { 137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SSIZE_T sz = Min(iovec[i].iov_len, maxlen); 138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(iovec[i].iov_base, sz); 139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov maxlen -= sz; 140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov// This functions uses POST_READ, because it needs to run after syscall to know 144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov// the real read range. 145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanovstatic void kernel_read_iovec(const __sanitizer_iovec *iovec, 146639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SIZE_T iovlen, SIZE_T maxlen) { 147639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_READ(iovec, sizeof(*iovec) * iovlen); 148639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov for (SIZE_T i = 0; i < iovlen && maxlen; ++i) { 149639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov SSIZE_T sz = Min(iovec[i].iov_len, maxlen); 150639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_READ(iovec[i].iov_base, sz); 151639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov maxlen -= sz; 152639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvmsg)(long sockfd, sanitizer_kernel_msghdr *msg, long flags) { 1562887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov PRE_READ(msg, sizeof(*msg)); 1572887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 1582887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvmsg)(long res, long sockfd, sanitizer_kernel_msghdr *msg, 160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) { 161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msg) { 163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov for (unsigned long i = 0; i < msg->msg_iovlen; ++i) { 164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(msg->msg_iov[i].iov_base, msg->msg_iov[i].iov_len); 165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(msg->msg_control, msg->msg_controllen); 167102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1692887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 1702887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvmmsg)(long fd, sanitizer_kernel_mmsghdr *msg, long vlen, 172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags, void *timeout) { 173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(msg, vlen * sizeof(*msg)); 174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1752887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvmmsg)(long res, long fd, sanitizer_kernel_mmsghdr *msg, 177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long vlen, long flags, void *timeout) { 178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msg) { 180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov for (unsigned long i = 0; i < msg->msg_hdr.msg_iovlen; ++i) { 181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(msg->msg_hdr.msg_iov[i].iov_base, 182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov msg->msg_hdr.msg_iov[i].iov_len); 183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(msg->msg_hdr.msg_control, msg->msg_hdr.msg_controllen); 185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(&msg->msg_len, sizeof(msg->msg_len)); 186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (timeout) POST_WRITE(timeout, struct_timespec_sz); 188102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 1892887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 1902887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(read)(long fd, void *buf, uptr count) { 192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) { 193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_WRITE(buf, count); 194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1962887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(read)(long res, long fd, void *buf, uptr count) { 198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res > 0 && buf) { 199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, res); 200102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 2012887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 2022887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(time)(void *tloc) {} 204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(time)(long res, void *tloc) { 206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tloc) POST_WRITE(tloc, sizeof(long)); 208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2092887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 2102887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stime)(void *tptr) {} 212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stime)(long res, void *tptr) { 214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tptr) POST_WRITE(tptr, sizeof(long)); 216102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 2172887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov} 2182887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gettimeofday)(void *tv, void *tz) {} 220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gettimeofday)(long res, void *tv, void *tz) { 222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tv) POST_WRITE(tv, timeval_sz); 224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tz) POST_WRITE(tz, struct_timezone_sz); 225102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(settimeofday)(void *tv, void *tz) {} 229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(settimeofday)(long res, void *tv, void *tz) { 231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tv) POST_WRITE(tv, timeval_sz); 233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tz) POST_WRITE(tz, struct_timezone_sz); 234102c04325b454957c322f61c5a8033b720bc9238Andy Gibbs } 235fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov} 236fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov 237fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID 238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(adjtimex)(void *txc_p) {} 239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(adjtimex)(long res, void *txc_p) { 241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (txc_p) POST_WRITE(txc_p, struct_timex_sz); 243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 245fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif 246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(times)(void *tbuf) {} 248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(times)(long res, void *tbuf) { 250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tbuf) POST_WRITE(tbuf, struct_tms_sz); 252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gettid)() {} 256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gettid)(long res) {} 258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(nanosleep)(void *rqtp, void *rmtp) {} 260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(nanosleep)(long res, void *rqtp, void *rmtp) { 262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rqtp) POST_WRITE(rqtp, struct_timespec_sz); 264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rmtp) POST_WRITE(rmtp, struct_timespec_sz); 265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(alarm)(long seconds) {} 269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(alarm)(long res, long seconds) {} 271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpid)() {} 273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpid)(long res) {} 275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getppid)() {} 277639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 278639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getppid)(long res) {} 279639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getuid)() {} 281639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getuid)(long res) {} 283639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 284639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(geteuid)() {} 285639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 286639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(geteuid)(long res) {} 287639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgid)() {} 289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgid)(long res) {} 291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getegid)() {} 293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getegid)(long res) {} 295639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 296639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresuid)(void *ruid, void *euid, void *suid) {} 297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getresuid)(long res, void *ruid, void *euid, void *suid) { 299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ruid) POST_WRITE(ruid, sizeof(unsigned)); 301639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (euid) POST_WRITE(euid, sizeof(unsigned)); 302639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (suid) POST_WRITE(suid, sizeof(unsigned)); 303639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 304639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 305639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 306639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresgid)(void *rgid, void *egid, void *sgid) {} 307639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 308639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getresgid)(long res, void *rgid, void *egid, void *sgid) { 309639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 310639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rgid) POST_WRITE(rgid, sizeof(unsigned)); 311639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (egid) POST_WRITE(egid, sizeof(unsigned)); 312639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (sgid) POST_WRITE(sgid, sizeof(unsigned)); 313639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 314639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 315639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 316639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpgid)(long pid) {} 317639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 318639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpgid)(long res, long pid) {} 319639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 320639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpgrp)() {} 321639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 322639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpgrp)(long res) {} 323639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 324639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsid)(long pid) {} 325639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 326639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsid)(long res, long pid) {} 327639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 328639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgroups)(long gidsetsize, void *grouplist) {} 329639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 330a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getgroups)(long res, long gidsetsize, 331a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_gid_t *grouplist) { 332639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 333639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (grouplist) POST_WRITE(grouplist, res * sizeof(*grouplist)); 334fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov } 335fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov} 336fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov 337639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setregid)(long rgid, long egid) {} 338639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 339639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setregid)(long res, long rgid, long egid) {} 340639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 341639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setgid)(long gid) {} 342639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 343639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgid)(long res, long gid) {} 344639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 345639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setreuid)(long ruid, long euid) {} 346639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 347639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setreuid)(long res, long ruid, long euid) {} 348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 349639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setuid)(long uid) {} 350639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 351639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setuid)(long res, long uid) {} 352639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 353639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresuid)(long ruid, long euid, long suid) {} 354639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 355639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresuid)(long res, long ruid, long euid, long suid) {} 356639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 357639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresgid)(long rgid, long egid, long sgid) {} 358639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresgid)(long res, long rgid, long egid, long sgid) {} 360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsuid)(long uid) {} 362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsuid)(long res, long uid) {} 364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 365639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsgid)(long gid) {} 366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsgid)(long res, long gid) {} 368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setpgid)(long pid, long pgid) {} 370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setpgid)(long res, long pid, long pgid) {} 372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setsid)() {} 374639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setsid)(long res) {} 376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 377a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(setgroups)(long gidsetsize, __sanitizer___kernel_gid_t *grouplist) { 378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (grouplist) POST_WRITE(grouplist, gidsetsize * sizeof(*grouplist)); 379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 381a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(setgroups)(long res, long gidsetsize, 382a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_gid_t *grouplist) {} 383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(acct)(const void *name) { 385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(acct)(long res, const void *name) {} 390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 3912d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(capget)(void *header, void *dataptr) { 3922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (header) PRE_READ(header, __user_cap_header_struct_sz); 3932d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines} 394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(capget)(long res, void *header, void *dataptr) { 3962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (res >= 0) 397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (dataptr) POST_WRITE(dataptr, __user_cap_data_struct_sz); 398fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov} 399fa568969fea365a04591d029974b5c93e2cc9867Evgeniy Stepanov 400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(capset)(void *header, const void *data) { 4012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (header) PRE_READ(header, __user_cap_header_struct_sz); 402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (data) PRE_READ(data, __user_cap_data_struct_sz); 403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 4052d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(capset)(long res, void *header, const void *data) {} 4068b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov 407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(personality)(long personality) {} 408639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 409639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(personality)(long res, long personality) {} 410639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sigpending)(void *set) {} 412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sigpending)(long res, void *set) { 414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (set) POST_WRITE(set, old_sigset_t_sz); 416a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4178b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov} 4188b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov 419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sigprocmask)(long how, void *set, void *oset) {} 420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sigprocmask)(long res, long how, void *set, void *oset) { 422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (set) POST_WRITE(set, old_sigset_t_sz); 424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oset) POST_WRITE(oset, old_sigset_t_sz); 425a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4268b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov} 4278b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov 428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getitimer)(long which, void *value) {} 429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getitimer)(long res, long which, void *value) { 431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (value) POST_WRITE(value, struct_itimerval_sz); 433a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4348b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov} 4358b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov 436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setitimer)(long which, void *value, void *ovalue) {} 437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setitimer)(long res, long which, void *value, void *ovalue) { 439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (value) POST_WRITE(value, struct_itimerval_sz); 441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ovalue) POST_WRITE(ovalue, struct_itimerval_sz); 442a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4438b40073a28ed435862e250ae01b8ff85d6a2063fEvgeniy Stepanov} 4449d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov 445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_create)(long which_clock, void *timer_event_spec, 446639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *created_timer_id) {} 447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_create)(long res, long which_clock, void *timer_event_spec, 449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *created_timer_id) { 450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (timer_event_spec) POST_WRITE(timer_event_spec, struct_sigevent_sz); 452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (created_timer_id) POST_WRITE(created_timer_id, sizeof(long)); 453a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4549d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov} 4559d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov 456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_gettime)(long timer_id, void *setting) {} 457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_gettime)(long res, long timer_id, void *setting) { 459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (setting) POST_WRITE(setting, struct_itimerspec_sz); 461a74047af8eb56e41cbb765d296b79e07ce4803b3Alexander Potapenko } 4629d34659cd3570423fb1fa49248887e2bd4b762f9Evgeniy Stepanov} 4632887a64cb7b82fc2dcbe4b1fcc33562077ec371aEvgeniy Stepanov 464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_getoverrun)(long timer_id) {} 465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_getoverrun)(long res, long timer_id) {} 467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_settime)(long timer_id, long flags, const void *new_setting, 469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *old_setting) { 470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (new_setting) PRE_READ(new_setting, struct_itimerspec_sz); 471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_settime)(long res, long timer_id, long flags, 474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *new_setting, void *old_setting) { 475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (old_setting) POST_WRITE(old_setting, struct_itimerspec_sz); 477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timer_delete)(long timer_id) {} 481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timer_delete)(long res, long timer_id) {} 483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_settime)(long which_clock, const void *tp) { 485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tp) PRE_READ(tp, struct_timespec_sz); 486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_settime)(long res, long which_clock, const void *tp) {} 489639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 490639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_gettime)(long which_clock, void *tp) {} 491639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_gettime)(long res, long which_clock, void *tp) { 493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tp) POST_WRITE(tp, struct_timespec_sz); 495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 498fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID 499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_adjtime)(long which_clock, void *tx) {} 500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_adjtime)(long res, long which_clock, void *tx) { 502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tx) POST_WRITE(tx, struct_timex_sz); 504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 505639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 506fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif 507639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_getres)(long which_clock, void *tp) {} 509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_getres)(long res, long which_clock, void *tp) { 511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tp) POST_WRITE(tp, struct_timespec_sz); 513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(clock_nanosleep)(long which_clock, long flags, const void *rqtp, 517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *rmtp) { 518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rqtp) PRE_READ(rqtp, struct_timespec_sz); 519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(clock_nanosleep)(long res, long which_clock, long flags, 522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *rqtp, void *rmtp) { 523639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 524639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rmtp) POST_WRITE(rmtp, struct_timespec_sz); 525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 527639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(nice)(long increment) {} 529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(nice)(long res, long increment) {} 531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setscheduler)(long pid, long policy, void *param) {} 533639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 534639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setscheduler)(long res, long pid, long policy, void *param) { 535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (param) POST_WRITE(param, struct_sched_param_sz); 537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 539639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setparam)(long pid, void *param) { 541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (param) PRE_READ(param, struct_sched_param_sz); 542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setparam)(long res, long pid, void *param) {} 545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getscheduler)(long pid) {} 547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getscheduler)(long res, long pid) {} 549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getparam)(long pid, void *param) {} 551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getparam)(long res, long pid, void *param) { 553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (param) POST_WRITE(param, struct_sched_param_sz); 555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 556639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_setaffinity)(long pid, long len, void *user_mask_ptr) { 559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (user_mask_ptr) PRE_READ(user_mask_ptr, len); 560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_setaffinity)(long res, long pid, long len, 563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *user_mask_ptr) {} 564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_getaffinity)(long pid, long len, void *user_mask_ptr) {} 566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_getaffinity)(long res, long pid, long len, 568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *user_mask_ptr) { 569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (user_mask_ptr) POST_WRITE(user_mask_ptr, len); 571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_yield)() {} 575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_yield)(long res) {} 577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_get_priority_max)(long policy) {} 579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_get_priority_max)(long res, long policy) {} 581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_get_priority_min)(long policy) {} 583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_get_priority_min)(long res, long policy) {} 585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sched_rr_get_interval)(long pid, void *interval) {} 587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sched_rr_get_interval)(long res, long pid, void *interval) { 589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (interval) POST_WRITE(interval, struct_timespec_sz); 591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setpriority)(long which, long who, long niceval) {} 595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setpriority)(long res, long which, long who, long niceval) {} 597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpriority)(long which, long who) {} 599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpriority)(long res, long which, long who) {} 601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shutdown)(long arg0, long arg1) {} 603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shutdown)(long res, long arg0, long arg1) {} 605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(reboot)(long magic1, long magic2, long cmd, void *arg) {} 607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(reboot)(long res, long magic1, long magic2, long cmd, void *arg) {} 609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(restart_syscall)() {} 611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(restart_syscall)(long res) {} 613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(kexec_load)(long entry, long nr_segments, void *segments, 615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(kexec_load)(long res, long entry, long nr_segments, void *segments, 618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) { 619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (segments) POST_WRITE(segments, struct_kexec_segment_sz); 621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(exit)(long error_code) {} 625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(exit)(long res, long error_code) {} 627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(exit_group)(long error_code) {} 629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(exit_group)(long res, long error_code) {} 631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(wait4)(long pid, void *stat_addr, long options, void *ru) {} 633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(wait4)(long res, long pid, void *stat_addr, long options, 635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *ru) { 636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (stat_addr) POST_WRITE(stat_addr, sizeof(int)); 638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ru) POST_WRITE(ru, struct_rusage_sz); 639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(waitid)(long which, long pid, void *infop, long options, void *ru) { 643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(waitid)(long res, long which, long pid, void *infop, long options, 646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *ru) { 647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (infop) POST_WRITE(infop, siginfo_t_sz); 649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ru) POST_WRITE(ru, struct_rusage_sz); 650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(waitpid)(long pid, void *stat_addr, long options) {} 654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(waitpid)(long res, long pid, void *stat_addr, long options) { 656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (stat_addr) POST_WRITE(stat_addr, sizeof(int)); 658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_tid_address)(void *tidptr) {} 662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_tid_address)(long res, void *tidptr) { 664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tidptr) POST_WRITE(tidptr, sizeof(int)); 666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(init_module)(void *umod, long len, const void *uargs) { 670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uargs) 671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(uargs, __sanitizer::internal_strlen((const char *)uargs) + 1); 672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(init_module)(long res, void *umod, long len, const void *uargs) {} 675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(delete_module)(const void *name_user, long flags) { 677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name_user) 678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name_user, 679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)name_user) + 1); 680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(delete_module)(long res, const void *name_user, long flags) {} 683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigprocmask)(long how, void *set, void *oset, long sigsetsize) {} 685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigprocmask)(long res, long how, kernel_sigset_t *set, 687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov kernel_sigset_t *oset, long sigsetsize) { 688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (set) POST_WRITE(set, sigsetsize); 690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oset) POST_WRITE(oset, sigsetsize); 691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigpending)(void *set, long sigsetsize) {} 695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigpending)(long res, kernel_sigset_t *set, long sigsetsize) { 697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (set) POST_WRITE(set, sigsetsize); 699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigtimedwait)(const kernel_sigset_t *uthese, void *uinfo, 703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *uts, long sigsetsize) { 704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uthese) PRE_READ(uthese, sigsetsize); 705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uts) PRE_READ(uts, struct_timespec_sz); 706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigtimedwait)(long res, const void *uthese, void *uinfo, 709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *uts, long sigsetsize) { 710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uinfo) POST_WRITE(uinfo, siginfo_t_sz); 712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_tgsigqueueinfo)(long tgid, long pid, long sig, void *uinfo) {} 716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_tgsigqueueinfo)(long res, long tgid, long pid, long sig, 718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *uinfo) { 719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uinfo) POST_WRITE(uinfo, siginfo_t_sz); 721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(kill)(long pid, long sig) {} 725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(kill)(long res, long pid, long sig) {} 727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tgkill)(long tgid, long pid, long sig) {} 729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tgkill)(long res, long tgid, long pid, long sig) {} 731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tkill)(long pid, long sig) {} 733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tkill)(long res, long pid, long sig) {} 735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rt_sigqueueinfo)(long pid, long sig, void *uinfo) {} 737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rt_sigqueueinfo)(long res, long pid, long sig, void *uinfo) { 739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (uinfo) POST_WRITE(uinfo, siginfo_t_sz); 741639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 742639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 743639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 744639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sgetmask)() {} 745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 746639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sgetmask)(long res) {} 747639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 748639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ssetmask)(long newmask) {} 749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ssetmask)(long res, long newmask) {} 751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signal)(long sig, long handler) {} 753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signal)(long res, long sig, long handler) {} 755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pause)() {} 757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pause)(long res) {} 759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sync)() {} 761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sync)(long res) {} 763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fsync)(long fd) {} 765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fsync)(long res, long fd) {} 767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fdatasync)(long fd) {} 769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fdatasync)(long res, long fd) {} 771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(bdflush)(long func, long data) {} 773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(bdflush)(long res, long func, long data) {} 775639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 776639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mount)(void *dev_name, void *dir_name, void *type, long flags, 777639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *data) {} 778639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mount)(long res, void *dev_name, void *dir_name, void *type, 780639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags, void *data) { 781639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (dev_name) 783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(dev_name, 784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)dev_name) + 1); 785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (dir_name) 786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(dir_name, 787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)dir_name) + 1); 788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (type) 789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(type, __sanitizer::internal_strlen((const char *)type) + 1); 790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(umount)(void *name, long flags) {} 794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(umount)(long res, void *name, long flags) { 796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1); 799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(oldumount)(void *name) {} 803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(oldumount)(long res, void *name) { 805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1); 808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(truncate)(const void *path, long length) { 812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(truncate)(long res, const void *path, long length) {} 817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ftruncate)(long fd, long length) {} 819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ftruncate)(long res, long fd, long length) {} 821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stat)(const void *filename, void *statbuf) { 823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stat)(long res, const void *filename, void *statbuf) { 829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz); 831639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 832639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 833639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 8346a211c5814e25d6745a5058cc0e499e5235d3821Stephen Hines#if !SANITIZER_ANDROID 835639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(statfs)(const void *path, void *buf) { 836639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 837639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 838639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 839639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 840639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(statfs)(long res, const void *path, void *buf) { 841639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 842639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, struct_statfs_sz); 843639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 844639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 845639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 846639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(statfs64)(const void *path, long sz, void *buf) { 847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(statfs64)(long res, const void *path, long sz, void *buf) { 852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, struct_statfs64_sz); 854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 857639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatfs)(long fd, void *buf) {} 858639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 859639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatfs)(long res, long fd, void *buf) { 860639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 861639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, struct_statfs_sz); 862639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 863639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 864639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 865639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatfs64)(long fd, long sz, void *buf) {} 866639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 867639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatfs64)(long res, long fd, long sz, void *buf) { 868639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 869639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, struct_statfs64_sz); 870639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 871639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 8726a211c5814e25d6745a5058cc0e499e5235d3821Stephen Hines#endif // !SANITIZER_ANDROID 873639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 874639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lstat)(const void *filename, void *statbuf) { 875639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 876639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 877639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 878639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 879639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 880639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lstat)(long res, const void *filename, void *statbuf) { 881639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 882639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz); 883639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 884639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 885639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 886639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstat)(long fd, void *statbuf) {} 887639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 888639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstat)(long res, long fd, void *statbuf) { 889639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 890639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct___old_kernel_stat_sz); 891639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 892639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 893639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 894639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newstat)(const void *filename, void *statbuf) { 895639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 896639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 897639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 898639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 899639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 900639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newstat)(long res, const void *filename, void *statbuf) { 901639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 902639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz); 903639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 904639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 905639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 906639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newlstat)(const void *filename, void *statbuf) { 907639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 908639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 909639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 910639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 911639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 912639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newlstat)(long res, const void *filename, void *statbuf) { 913639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 914639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz); 915639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 916639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 917639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 918639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newfstat)(long fd, void *statbuf) {} 919639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 920639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newfstat)(long res, long fd, void *statbuf) { 921639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 922639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz); 923639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 924639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 925639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 92625ecb75efb30f8a8f80cc89c3a1cb83508e7bacfEvgeniy Stepanov#if !SANITIZER_ANDROID 927639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ustat)(long dev, void *ubuf) {} 928639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 929639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ustat)(long res, long dev, void *ubuf) { 930639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 931639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ubuf) POST_WRITE(ubuf, struct_ustat_sz); 932639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 933639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 93425ecb75efb30f8a8f80cc89c3a1cb83508e7bacfEvgeniy Stepanov#endif // !SANITIZER_ANDROID 935639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 936639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(stat64)(const void *filename, void *statbuf) { 937639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 938639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 939639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 940639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 941639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 942639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(stat64)(long res, const void *filename, void *statbuf) { 943639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 944639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz); 945639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 946639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 947639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 948639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstat64)(long fd, void *statbuf) {} 949639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 950639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstat64)(long res, long fd, void *statbuf) { 951639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 952639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz); 953639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 954639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 955639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 956639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lstat64)(const void *filename, void *statbuf) { 957639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 958639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 959639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 960639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 961639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 962639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lstat64)(long res, const void *filename, void *statbuf) { 963639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 964639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz); 965639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 966639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 967639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 968639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setxattr)(const void *path, const void *name, const void *value, 969639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size, long flags) { 970639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 971639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 972639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 973639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 974639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (value) PRE_READ(value, size); 975639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 976639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 977639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setxattr)(long res, const void *path, const void *name, 978639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *value, long size, long flags) {} 979639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 980639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lsetxattr)(const void *path, const void *name, const void *value, 981639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size, long flags) { 982639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 983639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 984639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 985639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 986639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (value) PRE_READ(value, size); 987639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 988639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 989639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lsetxattr)(long res, const void *path, const void *name, 990639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *value, long size, long flags) {} 991639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 992639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fsetxattr)(long fd, const void *name, const void *value, long size, 993639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) { 994639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 995639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 996639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (value) PRE_READ(value, size); 997639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 998639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 999639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fsetxattr)(long res, long fd, const void *name, const void *value, 1000639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size, long flags) {} 1001639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1002639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getxattr)(const void *path, const void *name, void *value, 1003639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size) { 1004639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1005639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1006639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1007639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1008639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1009639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1010639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getxattr)(long res, const void *path, const void *name, 1011639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *value, long size) { 10122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (value) POST_WRITE(value, res); 1014639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1015639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1016639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1017639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lgetxattr)(const void *path, const void *name, void *value, 1018639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size) { 1019639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1020639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1021639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1022639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1023639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1024639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1025639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lgetxattr)(long res, const void *path, const void *name, 1026639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *value, long size) { 10272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (value) POST_WRITE(value, res); 1029639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1030639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1031639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1032639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fgetxattr)(long fd, const void *name, void *value, long size) { 1033639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1034639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1035639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1036639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1037639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fgetxattr)(long res, long fd, const void *name, void *value, 1038639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long size) { 10392d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10402d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (value) POST_WRITE(value, res); 1041639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1042639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1043639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1044639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(listxattr)(const void *path, void *list, long size) { 1045639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1046639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1047639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1048639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1049639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(listxattr)(long res, const void *path, void *list, long size) { 10502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (list) POST_WRITE(list, res); 1052639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1053639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1054639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1055639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(llistxattr)(const void *path, void *list, long size) { 1056639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1057639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1058639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1059639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1060639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(llistxattr)(long res, const void *path, void *list, long size) { 10612d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (list) POST_WRITE(list, res); 1063639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1064639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1065639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1066639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(flistxattr)(long fd, void *list, long size) {} 1067639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1068639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(flistxattr)(long res, long fd, void *list, long size) { 10692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (size && res > 0) { 10702d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (list) POST_WRITE(list, res); 1071639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1072639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1073639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1074639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(removexattr)(const void *path, const void *name) { 1075639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1076639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1077639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1078639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1079639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1080639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1081639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(removexattr)(long res, const void *path, const void *name) {} 1082639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1083639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lremovexattr)(const void *path, const void *name) { 1084639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1085639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1086639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1087639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1088639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1089639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1090639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lremovexattr)(long res, const void *path, const void *name) {} 1091639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1092639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fremovexattr)(long fd, const void *name) { 1093639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1094639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 1095639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1096639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1097639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fremovexattr)(long res, long fd, const void *name) {} 1098639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1099639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(brk)(long brk) {} 1100639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1101639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(brk)(long res, long brk) {} 1102639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1103639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mprotect)(long start, long len, long prot) {} 1104639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mprotect)(long res, long start, long len, long prot) {} 1106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mremap)(long addr, long old_len, long new_len, long flags, 1108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long new_addr) {} 1109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1110639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mremap)(long res, long addr, long old_len, long new_len, 1111639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags, long new_addr) {} 1112639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1113639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(remap_file_pages)(long start, long size, long prot, long pgoff, 1114639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 1115639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1116639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(remap_file_pages)(long res, long start, long size, long prot, 1117639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pgoff, long flags) {} 1118639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1119639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msync)(long start, long len, long flags) {} 1120639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1121639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msync)(long res, long start, long len, long flags) {} 1122639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1123639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munmap)(long addr, long len) {} 1124639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munmap)(long res, long addr, long len) {} 1126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mlock)(long start, long len) {} 1128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mlock)(long res, long start, long len) {} 1130639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1131639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munlock)(long start, long len) {} 1132639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1133639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munlock)(long res, long start, long len) {} 1134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mlockall)(long flags) {} 1136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mlockall)(long res, long flags) {} 1138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(munlockall)() {} 1140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(munlockall)(long res) {} 1142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(madvise)(long start, long len, long behavior) {} 1144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(madvise)(long res, long start, long len, long behavior) {} 1146639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1147639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mincore)(long start, long len, void *vec) {} 1148639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1149639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mincore)(long res, long start, long len, void *vec) { 1150639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1151639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (vec) { 1152639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(vec, (len + GetPageSizeCached() - 1) / GetPageSizeCached()); 1153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1156639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1157639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pivot_root)(const void *new_root, const void *put_old) { 1158639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (new_root) 1159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(new_root, 1160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)new_root) + 1); 1161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (put_old) 1162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(put_old, __sanitizer::internal_strlen((const char *)put_old) + 1); 1163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pivot_root)(long res, const void *new_root, const void *put_old) {} 1166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1167639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chroot)(const void *filename) { 1168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1169639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1170639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chroot)(long res, const void *filename) {} 1174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1175639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mknod)(const void *filename, long mode, long dev) { 1176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mknod)(long res, const void *filename, long mode, long dev) {} 1182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(link)(const void *oldname, const void *newname) { 1184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oldname) 1185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1); 1186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (newname) 1187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1); 1188639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1189639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1190639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(link)(long res, const void *oldname, const void *newname) {} 1191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(symlink)(const void *old, const void *new_) { 1193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (old) PRE_READ(old, __sanitizer::internal_strlen((const char *)old) + 1); 1194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (new_) 1195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(new_, __sanitizer::internal_strlen((const char *)new_) + 1); 1196639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(symlink)(long res, const void *old, const void *new_) {} 1199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1200639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unlink)(const void *pathname) { 1201639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 1202639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 1203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 1204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unlink)(long res, const void *pathname) {} 1207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rename)(const void *oldname, const void *newname) { 1209639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oldname) 1210639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1); 1211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (newname) 1212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1); 1213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rename)(long res, const void *oldname, const void *newname) {} 1216639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1217639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chmod)(const void *filename, long mode) { 1218639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chmod)(long res, const void *filename, long mode) {} 1224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1225639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchmod)(long fd, long mode) {} 1226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchmod)(long res, long fd, long mode) {} 1228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fcntl)(long fd, long cmd, long arg) {} 1230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fcntl)(long res, long fd, long cmd, long arg) {} 1232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fcntl64)(long fd, long cmd, long arg) {} 1234639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1235639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fcntl64)(long res, long fd, long cmd, long arg) {} 1236639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1237639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pipe)(void *fildes) {} 1238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pipe)(long res, void *fildes) { 1240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (fildes) POST_WRITE(fildes, sizeof(int)); 1242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1245639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pipe2)(void *fildes, long flags) {} 1246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pipe2)(long res, void *fildes, long flags) { 1248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (fildes) POST_WRITE(fildes, sizeof(int)); 1250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup)(long fildes) {} 1254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup)(long res, long fildes) {} 1256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup2)(long oldfd, long newfd) {} 1258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup2)(long res, long oldfd, long newfd) {} 1260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(dup3)(long oldfd, long newfd, long flags) {} 1262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(dup3)(long res, long oldfd, long newfd, long flags) {} 1264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioperm)(long from, long num, long on) {} 1266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioperm)(long res, long from, long num, long on) {} 1268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioctl)(long fd, long cmd, long arg) {} 1270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioctl)(long res, long fd, long cmd, long arg) {} 1272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(flock)(long fd, long cmd) {} 1274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(flock)(long res, long fd, long cmd) {} 1276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 12772d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_setup)(long nr_reqs, void **ctx) { 12782d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (ctx) PRE_WRITE(ctx, sizeof(*ctx)); 12792d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines} 1280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 12812d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(io_setup)(long res, long nr_reqs, void **ctx) { 1282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 12832d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (ctx) POST_WRITE(ctx, sizeof(*ctx)); 12842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // (*ctx) is actually a pointer to a kernel mapped page, and there are 12852d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // people out there who are crazy enough to peek into that page's 32-byte 12862d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // header. 12872d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (*ctx) POST_WRITE(*ctx, 32); 1288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(io_destroy)(long ctx) {} 1292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(io_destroy)(long res, long ctx) {} 1294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 12952d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_getevents)(long ctx_id, long min_nr, long nr, 12962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines __sanitizer_io_event *ioevpp, void *timeout) { 1297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (timeout) PRE_READ(timeout, struct_timespec_sz); 1298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(io_getevents)(long res, long ctx_id, long min_nr, long nr, 13012d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines __sanitizer_io_event *ioevpp, void *timeout) { 1302639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 13032d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (ioevpp) POST_WRITE(ioevpp, res * sizeof(*ioevpp)); 1304639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (timeout) POST_WRITE(timeout, struct_timespec_sz); 1305639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 13062d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines for (long i = 0; i < res; i++) { 13072d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // We synchronize io_submit -> io_getevents/io_cancel using the 13082d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // user-provided data context. Data is not necessary a pointer, it can be 13092d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // an int, 0 or whatever; acquire/release will correctly handle this. 13102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // This scheme can lead to false negatives, e.g. when all operations 13112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // synchronize on 0. But there does not seem to be a better solution 13122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // (except wrapping all operations in own context, which is unreliable). 13132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // We can not reliably extract fildes in io_getevents. 13142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines COMMON_SYSCALL_ACQUIRE((void*)ioevpp[i].data); 13152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } 1316639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1317639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1318bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy StepanovPRE_SYSCALL(io_submit)(long ctx_id, long nr, __sanitizer_iocb **iocbpp) { 1319bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov for (long i = 0; i < nr; ++i) { 13202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines uptr op = iocbpp[i]->aio_lio_opcode; 13212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines void *data = (void*)iocbpp[i]->aio_data; 13222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines void *buf = (void*)iocbpp[i]->aio_buf; 13232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines uptr len = (uptr)iocbpp[i]->aio_nbytes; 13242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (op == iocb_cmd_pwrite && buf && len) { 13252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines PRE_READ(buf, len); 13262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } else if (op == iocb_cmd_pread && buf && len) { 13272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines POST_WRITE(buf, len); 13282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } else if (op == iocb_cmd_pwritev) { 13296d1862363c88c183b0ed7740fca876342cf0474bStephen Hines __sanitizer_iovec *iovec = (__sanitizer_iovec*)buf; 13302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines for (uptr v = 0; v < len; v++) 13316d1862363c88c183b0ed7740fca876342cf0474bStephen Hines PRE_READ(iovec[v].iov_base, iovec[v].iov_len); 13322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } else if (op == iocb_cmd_preadv) { 13336d1862363c88c183b0ed7740fca876342cf0474bStephen Hines __sanitizer_iovec *iovec = (__sanitizer_iovec*)buf; 13342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines for (uptr v = 0; v < len; v++) 13356d1862363c88c183b0ed7740fca876342cf0474bStephen Hines POST_WRITE(iovec[v].iov_base, iovec[v].iov_len); 13362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } 13372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // See comment in io_getevents. 13382d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines COMMON_SYSCALL_RELEASE(data); 1339bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov } 1340bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy Stepanov} 1341639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1342bd65956821ebe3f4e1fb0b57892a5a443ad50c6fEvgeniy StepanovPOST_SYSCALL(io_submit)(long res, long ctx_id, long nr, 13432d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines __sanitizer_iocb **iocbpp) {} 1344639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 13452d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPRE_SYSCALL(io_cancel)(long ctx_id, __sanitizer_iocb *iocb, 13462d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines __sanitizer_io_event *result) { 13472d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines} 1348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 13492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesPOST_SYSCALL(io_cancel)(long res, long ctx_id, __sanitizer_iocb *iocb, 13502d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines __sanitizer_io_event *result) { 13512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (res == 0) { 13522d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (result) { 13532d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines // See comment in io_getevents. 13542d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines COMMON_SYSCALL_ACQUIRE((void*)result->data); 13552d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines POST_WRITE(result, sizeof(*result)); 13562d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } 13572d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if (iocb) 13582d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines POST_WRITE(iocb, sizeof(*iocb)); 1359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendfile)(long out_fd, long in_fd, void *offset, long count) {} 1363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendfile)(long res, long out_fd, long in_fd, 1365a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_off_t *offset, long count) { 1366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (offset) POST_WRITE(offset, sizeof(*offset)); 1368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendfile64)(long out_fd, long in_fd, void *offset, long count) {} 1372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendfile64)(long res, long out_fd, long in_fd, 1374a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_loff_t *offset, long count) { 1375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (offset) POST_WRITE(offset, sizeof(*offset)); 1377639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readlink)(const void *path, void *buf, long bufsiz) { 1381639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 1382639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 1383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readlink)(long res, const void *path, void *buf, long bufsiz) { 1386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) 1388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1); 1389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1391639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1392639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(creat)(const void *pathname, long mode) { 1393639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 1394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 1395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 1396639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1398639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(creat)(long res, const void *pathname, long mode) {} 1399639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(open)(const void *filename, long flags, long mode) { 1401639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1405639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1406639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(open)(long res, const void *filename, long flags, long mode) {} 1407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1408b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry VyukovPRE_SYSCALL(close)(long fd) { 1409b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov COMMON_SYSCALL_FD_CLOSE((int)fd); 1410b47d41f310d9069f68135b7b8cc92b09f7436c4dDmitry Vyukov} 1411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(close)(long res, long fd) {} 1413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(access)(const void *filename, long mode) { 1415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1416639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1417639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1418639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(access)(long res, const void *filename, long mode) {} 1421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(vhangup)() {} 1423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(vhangup)(long res) {} 1425639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1426639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chown)(const void *filename, long user, long group) { 1427639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chown)(long res, const void *filename, long user, long group) {} 1433639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1434639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lchown)(const void *filename, long user, long group) { 1435639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lchown)(long res, const void *filename, long user, long group) {} 1441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1442639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchown)(long fd, long user, long group) {} 1443639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1444639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchown)(long res, long fd, long user, long group) {} 1445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 144686277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if SANITIZER_USES_UID16_SYSCALLS 1447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chown16)(const void *filename, long user, long group) { 1448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1453639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chown16)(long res, const void *filename, long user, long group) {} 1454639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1455639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lchown16)(const void *filename, long user, long group) { 1456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1461639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lchown16)(long res, const void *filename, long user, long group) {} 1462639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1463639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchown16)(long fd, long user, long group) {} 1464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchown16)(long res, long fd, long user, long group) {} 1466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setregid16)(long rgid, long egid) {} 1468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setregid16)(long res, long rgid, long egid) {} 1470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setgid16)(long gid) {} 1472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgid16)(long res, long gid) {} 1474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setreuid16)(long ruid, long euid) {} 1476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setreuid16)(long res, long ruid, long euid) {} 1478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setuid16)(long uid) {} 1480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setuid16)(long res, long uid) {} 1482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresuid16)(long ruid, long euid, long suid) {} 1484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresuid16)(long res, long ruid, long euid, long suid) {} 1486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresuid16)(void *ruid, void *euid, void *suid) {} 1488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1489a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getresuid16)(long res, __sanitizer___kernel_old_uid_t *ruid, 1490a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_uid_t *euid, 1491a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_uid_t *suid) { 1492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ruid) POST_WRITE(ruid, sizeof(*ruid)); 1494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (euid) POST_WRITE(euid, sizeof(*euid)); 1495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (suid) POST_WRITE(suid, sizeof(*suid)); 1496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1498639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setresgid16)(long rgid, long egid, long sgid) {} 1500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setresgid16)(long res, long rgid, long egid, long sgid) {} 1502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getresgid16)(void *rgid, void *egid, void *sgid) {} 1504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1505a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(getresgid16)(long res, __sanitizer___kernel_old_gid_t *rgid, 1506a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *egid, 1507a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *sgid) { 1508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rgid) POST_WRITE(rgid, sizeof(*rgid)); 1510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (egid) POST_WRITE(egid, sizeof(*egid)); 1511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (sgid) POST_WRITE(sgid, sizeof(*sgid)); 1512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsuid16)(long uid) {} 1516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsuid16)(long res, long uid) {} 1518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setfsgid16)(long gid) {} 1520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setfsgid16)(long res, long gid) {} 1522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1523a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(getgroups16)(long gidsetsize, 1524a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *grouplist) {} 1525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgroups16)(long res, long gidsetsize, 1527a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *grouplist) { 1528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (grouplist) POST_WRITE(grouplist, res * sizeof(*grouplist)); 1530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1533a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(setgroups16)(long gidsetsize, 1534a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *grouplist) { 1535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (grouplist) POST_WRITE(grouplist, gidsetsize * sizeof(*grouplist)); 1536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setgroups16)(long res, long gidsetsize, 1539a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_old_gid_t *grouplist) {} 1540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getuid16)() {} 1542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getuid16)(long res) {} 1544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(geteuid16)() {} 1546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(geteuid16)(long res) {} 1548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getgid16)() {} 1550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getgid16)(long res) {} 1552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getegid16)() {} 1554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getegid16)(long res) {} 155686277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#endif // SANITIZER_USES_UID16_SYSCALLS 1557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utime)(void *filename, void *times) {} 1559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utime)(long res, void *filename, void *times) { 1561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(filename, 1564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (times) POST_WRITE(times, struct_utimbuf_sz); 1566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utimes)(void *filename, void *utimes) {} 1570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utimes)(long res, void *filename, void *utimes) { 1572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(filename, 1575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (utimes) POST_WRITE(utimes, timeval_sz); 1577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lseek)(long fd, long offset, long origin) {} 1581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lseek)(long res, long fd, long offset, long origin) {} 1583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(llseek)(long fd, long offset_high, long offset_low, void *result, 1585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long origin) {} 1586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(llseek)(long res, long fd, long offset_high, long offset_low, 1588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *result, long origin) { 1589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (result) POST_WRITE(result, sizeof(long long)); 1591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readv)(long fd, const __sanitizer_iovec *vec, long vlen) {} 1595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readv)(long res, long fd, const __sanitizer_iovec *vec, 1597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long vlen) { 1598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (vec) kernel_write_iovec(vec, vlen, res); 1600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(write)(long fd, const void *buf, long count) { 1604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) PRE_READ(buf, count); 1605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(write)(long res, long fd, const void *buf, long count) {} 1608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(writev)(long fd, const __sanitizer_iovec *vec, long vlen) {} 1610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(writev)(long res, long fd, const __sanitizer_iovec *vec, 1612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long vlen) { 1613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (vec) kernel_read_iovec(vec, vlen, res); 1615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#ifdef _LP64 1619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pread64)(long fd, void *buf, long count, long pos) {} 1620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pread64)(long res, long fd, void *buf, long count, long pos) { 1622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, res); 1624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwrite64)(long fd, const void *buf, long count, long pos) { 1628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) PRE_READ(buf, count); 1629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwrite64)(long res, long fd, const void *buf, long count, 1632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos) {} 1633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#else 1634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pread64)(long fd, void *buf, long count, long pos0, long pos1) {} 1635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pread64)(long res, long fd, void *buf, long count, long pos0, 1637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos1) { 1638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, res); 1640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwrite64)(long fd, const void *buf, long count, long pos0, 1644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos1) { 1645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) PRE_READ(buf, count); 1646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwrite64)(long res, long fd, const void *buf, long count, 1649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos0, long pos1) {} 1650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif 1651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(preadv)(long fd, const __sanitizer_iovec *vec, long vlen, 1653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos_l, long pos_h) {} 1654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(preadv)(long res, long fd, const __sanitizer_iovec *vec, long vlen, 1656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos_l, long pos_h) { 1657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (vec) kernel_write_iovec(vec, vlen, res); 1659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pwritev)(long fd, const __sanitizer_iovec *vec, long vlen, 1663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pos_l, long pos_h) {} 1664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pwritev)(long res, long fd, const __sanitizer_iovec *vec, 1666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long vlen, long pos_l, long pos_h) { 1667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (vec) kernel_read_iovec(vec, vlen, res); 1669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getcwd)(void *buf, long size) {} 1673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getcwd)(long res, void *buf, long size) { 1675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) 1677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1); 1678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mkdir)(const void *pathname, long mode) { 1682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 1683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 1684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 1685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mkdir)(long res, const void *pathname, long mode) {} 1688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(chdir)(const void *filename) { 1690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 1691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 1692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 1693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(chdir)(long res, const void *filename) {} 1696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchdir)(long fd) {} 1698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchdir)(long res, long fd) {} 1700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(rmdir)(const void *pathname) { 1702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 1703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 1704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 1705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(rmdir)(long res, const void *pathname) {} 1708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(lookup_dcookie)(u64 cookie64, void *buf, long len) {} 1710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(lookup_dcookie)(long res, u64 cookie64, void *buf, long len) { 1712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) 1714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1); 1715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(quotactl)(long cmd, const void *special, long id, void *addr) { 1719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (special) 1720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(special, __sanitizer::internal_strlen((const char *)special) + 1); 1721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(quotactl)(long res, long cmd, const void *special, long id, 1724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *addr) {} 1725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getdents)(long fd, void *dirent, long count) {} 1727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getdents)(long res, long fd, void *dirent, long count) { 1729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (dirent) POST_WRITE(dirent, res); 1731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getdents64)(long fd, void *dirent, long count) {} 1735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getdents64)(long res, long fd, void *dirent, long count) { 1737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (dirent) POST_WRITE(dirent, res); 1739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1741639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1742639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setsockopt)(long fd, long level, long optname, void *optval, 1743639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long optlen) {} 1744639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setsockopt)(long res, long fd, long level, long optname, 1746639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *optval, long optlen) { 1747639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1748639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (optval) 1749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(optval, 1750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)optval) + 1); 1751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsockopt)(long fd, long level, long optname, void *optval, 1755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *optlen) {} 1756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsockopt)(long res, long fd, long level, long optname, 1758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *optval, void *optlen) { 1759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (optval) 1761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(optval, 1762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)optval) + 1); 1763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (optlen) POST_WRITE(optlen, sizeof(int)); 1764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(bind)(long arg0, sanitizer_kernel_sockaddr *arg1, long arg2) {} 1768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(bind)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long arg2) { 1771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1775639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1776639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(connect)(long arg0, sanitizer_kernel_sockaddr *arg1, long arg2) {} 1777639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1778639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(connect)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long arg2) { 1780639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1781639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(accept)(long arg0, sanitizer_kernel_sockaddr *arg1, void *arg2) {} 1786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(accept)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2) { 1789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, sizeof(unsigned)); 1792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(accept4)(long arg0, sanitizer_kernel_sockaddr *arg1, void *arg2, 1796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long arg3) {} 1797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(accept4)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2, long arg3) { 1800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, sizeof(unsigned)); 1803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getsockname)(long arg0, sanitizer_kernel_sockaddr *arg1, 1807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2) {} 1808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getsockname)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2) { 1811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, sizeof(unsigned)); 1814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getpeername)(long arg0, sanitizer_kernel_sockaddr *arg1, 1818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2) {} 1819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getpeername)(long res, long arg0, sanitizer_kernel_sockaddr *arg1, 1821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg2) { 1822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 1824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, sizeof(unsigned)); 1825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(send)(long arg0, void *arg1, long arg2, long arg3) {} 1829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(send)(long res, long arg0, void *arg1, long arg2, long arg3) { 1831639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res) { 1832639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_READ(arg1, res); 1833639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1834639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1835639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1836639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendto)(long arg0, void *arg1, long arg2, long arg3, 1837639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov sanitizer_kernel_sockaddr *arg4, long arg5) {} 1838639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1839639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendto)(long res, long arg0, void *arg1, long arg2, long arg3, 1840639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov sanitizer_kernel_sockaddr *arg4, long arg5) { 1841639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1842639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_READ(arg1, res); 1843639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg4) POST_WRITE(arg4, sizeof(*arg4)); 1844639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1845639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1846639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendmsg)(long fd, void *msg, long flags) {} 1848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendmsg)(long res, long fd, void *msg, long flags) { 1850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov // FIXME: POST_READ 1851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sendmmsg)(long fd, void *msg, long vlen, long flags) {} 1854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sendmmsg)(long res, long fd, void *msg, long vlen, long flags) { 1856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov // FIXME: POST_READ 1857639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1858639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1859639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recv)(long arg0, void *buf, long len, long flags) {} 1860639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1861639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recv)(long res, void *buf, long len, long flags) { 1862639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1863639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, res); 1864639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1865639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1866639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1867639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(recvfrom)(long arg0, void *buf, long len, long flags, 1868639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov sanitizer_kernel_sockaddr *arg4, void *arg5) {} 1869639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1870639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(recvfrom)(long res, long arg0, void *buf, long len, long flags, 1871639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov sanitizer_kernel_sockaddr *arg4, void *arg5) { 1872639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1873639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, res); 1874639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg4) POST_WRITE(arg4, sizeof(*arg4)); 1875639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg5) POST_WRITE(arg5, sizeof(int)); 1876639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1877639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1878639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1879639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socket)(long arg0, long arg1, long arg2) {} 1880639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1881639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socket)(long res, long arg0, long arg1, long arg2) {} 1882639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1883639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socketpair)(long arg0, long arg1, long arg2, void *arg3) {} 1884639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1885639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socketpair)(long res, long arg0, long arg1, long arg2, 1886639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg3) { 1887639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1888639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg3) POST_WRITE(arg3, sizeof(int)); 1889639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1890639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1891639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1892639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(socketcall)(long call, void *args) {} 1893639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1894639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(socketcall)(long res, long call, void *args) { 1895639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1896639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (args) POST_WRITE(args, sizeof(long)); 1897639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1898639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1899639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1900639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(listen)(long arg0, long arg1) {} 1901639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1902639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(listen)(long res, long arg0, long arg1) {} 1903639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1904639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(poll)(void *ufds, long nfds, long timeout) {} 1905639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1906639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(poll)(long res, __sanitizer_pollfd *ufds, long nfds, 1907639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long timeout) { 1908639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1909639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ufds) POST_WRITE(ufds, nfds * sizeof(*ufds)); 1910639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1911639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1912639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1913a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(select)(long n, __sanitizer___kernel_fd_set *inp, 1914a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *outp, 1915a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *exp, void *tvp) {} 1916639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1917a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(select)(long res, long n, __sanitizer___kernel_fd_set *inp, 1918a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *outp, 1919a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *exp, void *tvp) { 1920639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1921639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (inp) POST_WRITE(inp, sizeof(*inp)); 1922639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (outp) POST_WRITE(outp, sizeof(*outp)); 1923639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (exp) POST_WRITE(exp, sizeof(*exp)); 1924639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (tvp) POST_WRITE(tvp, timeval_sz); 1925639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1926639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1927639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1928639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_select)(void *arg) {} 1929639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1930639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_select)(long res, void *arg) {} 1931639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1932639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_create)(long size) {} 1933639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1934639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_create)(long res, long size) {} 1935639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1936639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_create1)(long flags) {} 1937639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1938639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_create1)(long res, long flags) {} 1939639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1940639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_ctl)(long epfd, long op, long fd, void *event) {} 1941639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1942639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_ctl)(long res, long epfd, long op, long fd, void *event) { 1943639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1944639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (event) POST_WRITE(event, struct_epoll_event_sz); 1945639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1946639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1947639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1948639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_wait)(long epfd, void *events, long maxevents, long timeout) { 1949639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1950639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1951639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_wait)(long res, long epfd, void *events, long maxevents, 1952639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long timeout) { 1953639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1954639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (events) POST_WRITE(events, struct_epoll_event_sz); 1955639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1956639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1957639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1958639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(epoll_pwait)(long epfd, void *events, long maxevents, long timeout, 1959639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const kernel_sigset_t *sigmask, long sigsetsize) { 1960639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (sigmask) PRE_READ(sigmask, sigsetsize); 1961639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1962639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1963639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(epoll_pwait)(long res, long epfd, void *events, long maxevents, 1964639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long timeout, const void *sigmask, long sigsetsize) { 1965639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1966639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (events) POST_WRITE(events, struct_epoll_event_sz); 1967639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1968639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1969639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1970639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(gethostname)(void *name, long len) {} 1971639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1972639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(gethostname)(long res, void *name, long len) { 1973639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1974639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1975639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1); 1976639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1977639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1978639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1979639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sethostname)(void *name, long len) {} 1980639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1981639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sethostname)(long res, void *name, long len) { 1982639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1983639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1984639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1); 1985639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1986639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1987639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1988639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setdomainname)(void *name, long len) {} 1989639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1990639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setdomainname)(long res, void *name, long len) { 1991639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 1992639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 1993639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(name, __sanitizer::internal_strlen((const char *)name) + 1); 1994639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 1995639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 1996639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1997639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newuname)(void *name) {} 1998639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 1999639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newuname)(long res, void *name) { 2000639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2001639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) POST_WRITE(name, struct_new_utsname_sz); 2002639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2003639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2004639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2005639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(uname)(void *arg0) {} 2006639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2007639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(uname)(long res, void *arg0) { 2008639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2009639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg0) POST_WRITE(arg0, struct_old_utsname_sz); 2010639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2011639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2012639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2013639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(olduname)(void *arg0) {} 2014639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2015639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(olduname)(long res, void *arg0) { 2016639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2017639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg0) POST_WRITE(arg0, struct_oldold_utsname_sz); 2018639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2019639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2020639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2021639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getrlimit)(long resource, void *rlim) {} 2022639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2023639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getrlimit)(long res, long resource, void *rlim) { 2024639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2025639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rlim) POST_WRITE(rlim, struct_rlimit_sz); 2026639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2027639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2028639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2029639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_getrlimit)(long resource, void *rlim) {} 2030639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2031639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_getrlimit)(long res, long resource, void *rlim) { 2032639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2033639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rlim) POST_WRITE(rlim, struct_rlimit_sz); 2034639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2035639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2036639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2037639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setrlimit)(long resource, void *rlim) {} 2038639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2039639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setrlimit)(long res, long resource, void *rlim) { 2040639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2041639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (rlim) POST_WRITE(rlim, struct_rlimit_sz); 2042639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2043639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2044639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2045639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#if !SANITIZER_ANDROID 2046639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim, 2047639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *old_rlim) { 2048639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz); 2049639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2050639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2051639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(prlimit64)(long res, long pid, long resource, const void *new_rlim, 2052639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *old_rlim) { 2053639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2054639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (old_rlim) POST_WRITE(old_rlim, struct_rlimit64_sz); 2055639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2056639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2057639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif 2058639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2059639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getrusage)(long who, void *ru) {} 2060639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2061639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getrusage)(long res, long who, void *ru) { 2062639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2063639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ru) POST_WRITE(ru, struct_rusage_sz); 2064639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2065639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2066639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2067639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(umask)(long mask) {} 2068639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2069639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(umask)(long res, long mask) {} 2070639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2071639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgget)(long key, long msgflg) {} 2072639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2073639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgget)(long res, long key, long msgflg) {} 2074639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2075639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgsnd)(long msqid, void *msgp, long msgsz, long msgflg) { 2076639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msgp) PRE_READ(msgp, msgsz); 2077639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2078639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2079639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgsnd)(long res, long msqid, void *msgp, long msgsz, 2080639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long msgflg) {} 2081639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2082639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgrcv)(long msqid, void *msgp, long msgsz, long msgtyp, 2083639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long msgflg) {} 2084639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2085639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgrcv)(long res, long msqid, void *msgp, long msgsz, long msgtyp, 2086639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long msgflg) { 2087639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2088639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msgp) POST_WRITE(msgp, res); 2089639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2090639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2091639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2092fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#if !SANITIZER_ANDROID 2093639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(msgctl)(long msqid, long cmd, void *buf) {} 2094639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2095639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(msgctl)(long res, long msqid, long cmd, void *buf) { 2096639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2097639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) POST_WRITE(buf, struct_msqid_ds_sz); 2098639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2099639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2100fd43df62a16dd1640aa14f1ffe650c147045f690Evgeniy Stepanov#endif 2101639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2102639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semget)(long key, long nsems, long semflg) {} 2103639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2104639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semget)(long res, long key, long nsems, long semflg) {} 2105639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2106639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semop)(long semid, void *sops, long nsops) {} 2107639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2108639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semop)(long res, long semid, void *sops, long nsops) {} 2109639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2110639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semctl)(long semid, long semnum, long cmd, void *arg) {} 2111639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2112639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semctl)(long res, long semid, long semnum, long cmd, void *arg) {} 2113639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2114639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(semtimedop)(long semid, void *sops, long nsops, 2115639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *timeout) { 2116639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (timeout) PRE_READ(timeout, struct_timespec_sz); 2117639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2118639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2119639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(semtimedop)(long res, long semid, void *sops, long nsops, 2120639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *timeout) {} 2121639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2122639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmat)(long shmid, void *shmaddr, long shmflg) {} 2123639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2124639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmat)(long res, long shmid, void *shmaddr, long shmflg) { 2125639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2126639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (shmaddr) 2127639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(shmaddr, 2128639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)shmaddr) + 1); 2129639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2130639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2131639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2132639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmget)(long key, long size, long flag) {} 2133639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2134639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmget)(long res, long key, long size, long flag) {} 2135639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2136639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmdt)(void *shmaddr) {} 2137639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2138639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmdt)(long res, void *shmaddr) { 2139639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2140639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (shmaddr) 2141639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(shmaddr, 2142639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)shmaddr) + 1); 2143639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2144639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2145639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 21461bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy StepanovPRE_SYSCALL(ipc)(long call, long first, long second, long third, void *ptr, 21471bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov long fifth) {} 21481bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov 21491bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy StepanovPOST_SYSCALL(ipc)(long res, long call, long first, long second, long third, 21501bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov void *ptr, long fifth) {} 21511bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov 21521bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#if !SANITIZER_ANDROID 2153639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(shmctl)(long shmid, long cmd, void *buf) {} 2154639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2155639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(shmctl)(long res, long shmid, long cmd, void *buf) { 2156639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2157f3603890015c130420def39d67a02c2fdafc6f84Evgeniy Stepanov if (buf) POST_WRITE(buf, sizeof(__sanitizer_shmid_ds)); 2158639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2159639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2160639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2161639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_open)(const void *name, long oflag, long mode, void *attr) { 2162639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 2163639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 2164639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2165639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2166639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_open)(long res, const void *name, long oflag, long mode, 2167639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *attr) { 2168639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2169639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (attr) POST_WRITE(attr, struct_mq_attr_sz); 2170639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2171639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2172639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2173639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_unlink)(const void *name) { 2174639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 2175639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 2176639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2177639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2178639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_unlink)(long res, const void *name) {} 2179639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2180639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_timedsend)(long mqdes, const void *msg_ptr, long msg_len, 2181639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long msg_prio, const void *abs_timeout) { 2182639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msg_ptr) PRE_READ(msg_ptr, msg_len); 2183639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (abs_timeout) PRE_READ(abs_timeout, struct_timespec_sz); 2184639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2185639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2186639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_timedsend)(long res, long mqdes, const void *msg_ptr, 2187639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long msg_len, long msg_prio, 2188639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *abs_timeout) {} 2189639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2190639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_timedreceive)(long mqdes, void *msg_ptr, long msg_len, 2191639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *msg_prio, const void *abs_timeout) { 2192639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (abs_timeout) PRE_READ(abs_timeout, struct_timespec_sz); 2193639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2194639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2195639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_timedreceive)(long res, long mqdes, void *msg_ptr, long msg_len, 2196639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov int *msg_prio, const void *abs_timeout) { 2197639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2198639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msg_ptr) POST_WRITE(msg_ptr, res); 2199639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (msg_prio) POST_WRITE(msg_prio, sizeof(*msg_prio)); 2200639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2201639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2202639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2203639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_notify)(long mqdes, const void *notification) { 2204639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (notification) PRE_READ(notification, struct_sigevent_sz); 2205639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2206639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2207639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_notify)(long res, long mqdes, const void *notification) {} 2208639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2209639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mq_getsetattr)(long mqdes, const void *mqstat, void *omqstat) { 2210639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (mqstat) PRE_READ(mqstat, struct_mq_attr_sz); 2211639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2212639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2213639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mq_getsetattr)(long res, long mqdes, const void *mqstat, 2214639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *omqstat) { 2215639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2216639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (omqstat) POST_WRITE(omqstat, struct_mq_attr_sz); 2217639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2218639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2219639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif // SANITIZER_ANDROID 2220639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2221639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_iobase)(long which, long bus, long devfn) {} 2222639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2223639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_iobase)(long res, long which, long bus, long devfn) {} 2224639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2225639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_read)(long bus, long dfn, long off, long len, void *buf) { 2226639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2227639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2228639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_read)(long res, long bus, long dfn, long off, long len, 2229639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *buf) {} 2230639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2231639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(pciconfig_write)(long bus, long dfn, long off, long len, 2232639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *buf) {} 2233639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2234639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(pciconfig_write)(long res, long bus, long dfn, long off, long len, 2235639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *buf) {} 2236639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2237639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(swapon)(const void *specialfile, long swap_flags) { 2238639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (specialfile) 2239639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(specialfile, 2240639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)specialfile) + 1); 2241639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2242639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2243639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(swapon)(long res, const void *specialfile, long swap_flags) {} 2244639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2245639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(swapoff)(const void *specialfile) { 2246639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (specialfile) 2247639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(specialfile, 2248639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)specialfile) + 1); 2249639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2250639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2251639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(swapoff)(long res, const void *specialfile) {} 2252639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2253639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysctl)(__sanitizer___sysctl_args *args) { 2254639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (args) { 2255639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (args->name) PRE_READ(args->name, args->nlen * sizeof(*args->name)); 2256639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (args->newval) PRE_READ(args->name, args->newlen); 2257639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2258639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2259639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2260639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysctl)(long res, __sanitizer___sysctl_args *args) { 2261639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2262639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (args && args->oldval && args->oldlenp) { 2263639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(args->oldlenp, sizeof(*args->oldlenp)); 2264639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(args->oldval, *args->oldlenp); 2265639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2266639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2267639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2268639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2269639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysinfo)(void *info) {} 2270639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2271639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysinfo)(long res, void *info) { 2272639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2273639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (info) POST_WRITE(info, struct_sysinfo_sz); 2274639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2275639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2276639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2277639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(sysfs)(long option, long arg1, long arg2) {} 2278639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2279639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(sysfs)(long res, long option, long arg1, long arg2) {} 2280639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2281639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(syslog)(long type, void *buf, long len) {} 2282639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2283639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(syslog)(long res, long type, void *buf, long len) { 2284639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2285639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) 2286639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1); 2287639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2288639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2289639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2290639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(uselib)(const void *library) { 2291639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (library) 2292639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(library, __sanitizer::internal_strlen((const char *)library) + 1); 2293639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2294639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2295639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(uselib)(long res, const void *library) {} 2296639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2297639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ni_syscall)() {} 2298639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2299639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ni_syscall)(long res) {} 2300639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 23013ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy StepanovPRE_SYSCALL(ptrace)(long request, long pid, long addr, long data) { 230286277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if !SANITIZER_ANDROID && \ 23033d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar (defined(__i386) || defined(__x86_64) || defined(__mips64) || \ 23043d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar defined(__powerpc64__) || defined(__aarch64__)) 23053ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov if (data) { 23063ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov if (request == ptrace_setregs) { 23073ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov PRE_READ((void *)data, struct_user_regs_struct_sz); 23083ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_setfpregs) { 23093ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov PRE_READ((void *)data, struct_user_fpregs_struct_sz); 23103ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_setfpxregs) { 23113ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov PRE_READ((void *)data, struct_user_fpxregs_struct_sz); 23123ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_setsiginfo) { 23133ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov PRE_READ((void *)data, siginfo_t_sz); 23143ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_setregset) { 23153ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov __sanitizer_iovec *iov = (__sanitizer_iovec *)data; 23163ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov PRE_READ(iov->iov_base, iov->iov_len); 23173ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } 23183ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } 23191bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#endif 23203ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov} 2321639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 23223ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy StepanovPOST_SYSCALL(ptrace)(long res, long request, long pid, long addr, long data) { 232386277eb844c4983c81de62d7c050e92fe7155788Stephen Hines#if !SANITIZER_ANDROID && \ 23243d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar (defined(__i386) || defined(__x86_64) || defined(__mips64) || \ 23253d763c0d3700e73b3aead8e65e04ec28efc56138Pirama Arumuga Nainar defined(__powerpc64__) || defined(__aarch64__)) 23263ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov if (res >= 0 && data) { 23273ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov // Note that this is different from the interceptor in 23283ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov // sanitizer_common_interceptors.inc. 23293ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov // PEEK* requests return resulting values through data pointer. 23303ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov if (request == ptrace_getregs) { 23313ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE((void *)data, struct_user_regs_struct_sz); 23323ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_getfpregs) { 23333ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE((void *)data, struct_user_fpregs_struct_sz); 23343ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_getfpxregs) { 23353ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE((void *)data, struct_user_fpxregs_struct_sz); 23363ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_getsiginfo) { 23373ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE((void *)data, siginfo_t_sz); 23383ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_getregset) { 23393ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov __sanitizer_iovec *iov = (__sanitizer_iovec *)data; 23403ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE(iov->iov_base, iov->iov_len); 23413ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } else if (request == ptrace_peekdata || request == ptrace_peektext || 23423ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov request == ptrace_peekuser) { 23433ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov POST_WRITE((void *)data, sizeof(void *)); 23443ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } 23453ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov } 23461bb2229028dd78280d24c26b9efbe8476d966e05Evgeniy Stepanov#endif 23473ee98e37856935ac1d79d51364df73ce00d8218eEvgeniy Stepanov} 2348639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2349639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(add_key)(const void *_type, const void *_description, 2350639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *_payload, long plen, long destringid) { 2351639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (_type) 2352639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(_type, __sanitizer::internal_strlen((const char *)_type) + 1); 2353639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (_description) 2354639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(_description, 2355639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)_description) + 1); 2356639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2357639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2358639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(add_key)(long res, const void *_type, const void *_description, 2359639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *_payload, long plen, long destringid) {} 2360639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2361639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(request_key)(const void *_type, const void *_description, 2362639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *_callout_info, long destringid) { 2363639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (_type) 2364639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(_type, __sanitizer::internal_strlen((const char *)_type) + 1); 2365639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (_description) 2366639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(_description, 2367639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)_description) + 1); 2368639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (_callout_info) 2369639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(_callout_info, 2370639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)_callout_info) + 1); 2371639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2372639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2373639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(request_key)(long res, const void *_type, const void *_description, 2374639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *_callout_info, long destringid) {} 2375639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2376639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(keyctl)(long cmd, long arg2, long arg3, long arg4, long arg5) {} 2377639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2378639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(keyctl)(long res, long cmd, long arg2, long arg3, long arg4, 2379639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long arg5) {} 2380639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2381639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioprio_set)(long which, long who, long ioprio) {} 2382639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2383639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioprio_set)(long res, long which, long who, long ioprio) {} 2384639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2385639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ioprio_get)(long which, long who) {} 2386639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2387639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ioprio_get)(long res, long which, long who) {} 2388639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2389639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_mempolicy)(long mode, void *nmask, long maxnode) {} 2390639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2391639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_mempolicy)(long res, long mode, void *nmask, long maxnode) { 2392639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2393639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (nmask) POST_WRITE(nmask, sizeof(long)); 2394639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2395639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2396639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2397639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(migrate_pages)(long pid, long maxnode, const void *from, 2398639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *to) { 2399639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (from) PRE_READ(from, sizeof(long)); 2400639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (to) PRE_READ(to, sizeof(long)); 2401639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2402639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2403639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(migrate_pages)(long res, long pid, long maxnode, const void *from, 2404639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *to) {} 2405639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2406639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(move_pages)(long pid, long nr_pages, const void **pages, 2407639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const int *nodes, int *status, long flags) { 2408639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pages) PRE_READ(pages, nr_pages * sizeof(*pages)); 2409639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (nodes) PRE_READ(nodes, nr_pages * sizeof(*nodes)); 2410639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2411639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2412639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(move_pages)(long res, long pid, long nr_pages, const void **pages, 2413639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const int *nodes, int *status, long flags) { 2414639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2415639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (status) POST_WRITE(status, nr_pages * sizeof(*status)); 2416639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2417639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2418639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2419639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mbind)(long start, long len, long mode, void *nmask, long maxnode, 2420639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2421639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2422639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mbind)(long res, long start, long len, long mode, void *nmask, 2423639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long maxnode, long flags) { 2424639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2425639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (nmask) POST_WRITE(nmask, sizeof(long)); 2426639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2427639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2428639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2429639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(get_mempolicy)(void *policy, void *nmask, long maxnode, long addr, 2430639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2431639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2432639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(get_mempolicy)(long res, void *policy, void *nmask, long maxnode, 2433639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long addr, long flags) { 2434639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2435639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (policy) POST_WRITE(policy, sizeof(int)); 2436639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (nmask) POST_WRITE(nmask, sizeof(long)); 2437639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2438639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2439639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2440639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_init)() {} 2441639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2442639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_init)(long res) {} 2443639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2444639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_init1)(long flags) {} 2445639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2446639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_init1)(long res, long flags) {} 2447639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2448639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_add_watch)(long fd, const void *path, long mask) { 2449639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 2450639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 2451639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2452639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2453639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_add_watch)(long res, long fd, const void *path, 2454639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long mask) {} 2455639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2456639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(inotify_rm_watch)(long fd, long wd) {} 2457639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2458639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(inotify_rm_watch)(long res, long fd, long wd) {} 2459639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2460639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(spu_run)(long fd, void *unpc, void *ustatus) {} 2461639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2462639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(spu_run)(long res, long fd, unsigned *unpc, unsigned *ustatus) { 2463639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2464639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (unpc) POST_WRITE(unpc, sizeof(*unpc)); 2465639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (ustatus) POST_WRITE(ustatus, sizeof(*ustatus)); 2466639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2467639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2468639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2469639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(spu_create)(const void *name, long flags, long mode, long fd) { 2470639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (name) 2471639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(name, __sanitizer::internal_strlen((const char *)name) + 1); 2472639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2473639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2474639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(spu_create)(long res, const void *name, long flags, long mode, 2475639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long fd) {} 2476639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2477639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mknodat)(long dfd, const void *filename, long mode, long dev) { 2478639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2479639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2480639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2481639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2482639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2483639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mknodat)(long res, long dfd, const void *filename, long mode, 2484639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long dev) {} 2485639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2486639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mkdirat)(long dfd, const void *pathname, long mode) { 2487639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 2488639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 2489639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 2490639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2491639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2492639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mkdirat)(long res, long dfd, const void *pathname, long mode) {} 2493639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2494639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unlinkat)(long dfd, const void *pathname, long flag) { 2495639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (pathname) 2496639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(pathname, 2497639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)pathname) + 1); 2498639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2499639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2500639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unlinkat)(long res, long dfd, const void *pathname, long flag) {} 2501639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2502639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(symlinkat)(const void *oldname, long newdfd, const void *newname) { 2503639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oldname) 2504639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1); 2505639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (newname) 2506639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1); 2507639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2508639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2509639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(symlinkat)(long res, const void *oldname, long newdfd, 2510639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *newname) {} 2511639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2512639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(linkat)(long olddfd, const void *oldname, long newdfd, 2513639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *newname, long flags) { 2514639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oldname) 2515639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1); 2516639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (newname) 2517639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1); 2518639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2519639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2520639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(linkat)(long res, long olddfd, const void *oldname, long newdfd, 2521639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *newname, long flags) {} 2522639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2523639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(renameat)(long olddfd, const void *oldname, long newdfd, 2524639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *newname) { 2525639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (oldname) 2526639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(oldname, __sanitizer::internal_strlen((const char *)oldname) + 1); 2527639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (newname) 2528639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(newname, __sanitizer::internal_strlen((const char *)newname) + 1); 2529639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2530639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2531639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(renameat)(long res, long olddfd, const void *oldname, long newdfd, 2532639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *newname) {} 2533639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2534639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(futimesat)(long dfd, const void *filename, void *utimes) { 2535639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2536639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2537639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2538639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2539639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2540639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(futimesat)(long res, long dfd, const void *filename, 2541639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *utimes) { 2542639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2543639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (utimes) POST_WRITE(utimes, timeval_sz); 2544639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2545639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2546639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2547639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(faccessat)(long dfd, const void *filename, long mode) { 2548639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2549639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2550639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2551639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2552639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2553639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(faccessat)(long res, long dfd, const void *filename, long mode) {} 2554639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2555639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchmodat)(long dfd, const void *filename, long mode) { 2556639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2557639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2558639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2559639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2560639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2561639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchmodat)(long res, long dfd, const void *filename, long mode) {} 2562639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2563639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fchownat)(long dfd, const void *filename, long user, long group, 2564639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flag) { 2565639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2566639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2567639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2568639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2569639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2570639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fchownat)(long res, long dfd, const void *filename, long user, 2571639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long group, long flag) {} 2572639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2573639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(openat)(long dfd, const void *filename, long flags, long mode) { 2574639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2575639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2576639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2577639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2578639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2579639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(openat)(long res, long dfd, const void *filename, long flags, 2580639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long mode) {} 2581639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2582639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(newfstatat)(long dfd, const void *filename, void *statbuf, 2583639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flag) { 2584639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2585639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2586639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2587639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2588639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2589639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(newfstatat)(long res, long dfd, const void *filename, 2590639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *statbuf, long flag) { 2591639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2592639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat_sz); 2593639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2594639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2595639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2596639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(fstatat64)(long dfd, const void *filename, void *statbuf, 2597639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flag) { 2598639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2599639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2600639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2601639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2602639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2603639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(fstatat64)(long res, long dfd, const void *filename, void *statbuf, 2604639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flag) { 2605639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2606639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (statbuf) POST_WRITE(statbuf, struct_kernel_stat64_sz); 2607639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2608639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2609639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2610639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(readlinkat)(long dfd, const void *path, void *buf, long bufsiz) { 2611639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (path) 2612639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(path, __sanitizer::internal_strlen((const char *)path) + 1); 2613639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2614639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2615639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(readlinkat)(long res, long dfd, const void *path, void *buf, 2616639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long bufsiz) { 2617639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2618639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (buf) 2619639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov POST_WRITE(buf, __sanitizer::internal_strlen((const char *)buf) + 1); 2620639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2621639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2622639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2623639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(utimensat)(long dfd, const void *filename, void *utimes, 2624639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) { 2625639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (filename) 2626639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov PRE_READ(filename, 2627639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov __sanitizer::internal_strlen((const char *)filename) + 1); 2628639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2629639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2630639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(utimensat)(long res, long dfd, const void *filename, void *utimes, 2631639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) { 2632639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2633639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (utimes) POST_WRITE(utimes, struct_timespec_sz); 2634639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2635639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2636639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2637639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(unshare)(long unshare_flags) {} 2638639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2639639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(unshare)(long res, long unshare_flags) {} 2640639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2641639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(splice)(long fd_in, void *off_in, long fd_out, void *off_out, 2642639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long len, long flags) {} 2643639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2644639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(splice)(long res, long fd_in, void *off_in, long fd_out, 2645639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *off_out, long len, long flags) { 2646639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2647639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (off_in) POST_WRITE(off_in, sizeof(long long)); 2648639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (off_out) POST_WRITE(off_out, sizeof(long long)); 2649639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2650639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2651639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2652639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(vmsplice)(long fd, const __sanitizer_iovec *iov, long nr_segs, 2653639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2654639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2655639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(vmsplice)(long res, long fd, const __sanitizer_iovec *iov, 2656639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long nr_segs, long flags) { 2657639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2658639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (iov) kernel_read_iovec(iov, nr_segs, res); 2659639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2660639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2661639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2662639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(tee)(long fdin, long fdout, long len, long flags) {} 2663639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2664639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(tee)(long res, long fdin, long fdout, long len, long flags) {} 2665639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2666639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(get_robust_list)(long pid, void *head_ptr, void *len_ptr) {} 2667639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2668639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(get_robust_list)(long res, long pid, void *head_ptr, 2669639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *len_ptr) {} 2670639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2671639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(set_robust_list)(void *head, long len) {} 2672639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2673639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(set_robust_list)(long res, void *head, long len) {} 2674639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2675639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(getcpu)(void *cpu, void *node, void *cache) {} 2676639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2677639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(getcpu)(long res, void *cpu, void *node, void *cache) { 2678639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2679639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (cpu) POST_WRITE(cpu, sizeof(unsigned)); 2680639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (node) POST_WRITE(node, sizeof(unsigned)); 2681639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov // The third argument to this system call is nowadays unused. 2682639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2683639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2684639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2685639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signalfd)(long ufd, void *user_mask, long sizemask) {} 2686639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2687639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signalfd)(long res, long ufd, kernel_sigset_t *user_mask, 2688639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long sizemask) { 2689639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2690639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (user_mask) POST_WRITE(user_mask, sizemask); 2691639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2692639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2693639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2694639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(signalfd4)(long ufd, void *user_mask, long sizemask, long flags) {} 2695639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2696639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(signalfd4)(long res, long ufd, kernel_sigset_t *user_mask, 2697639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long sizemask, long flags) { 2698639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2699639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (user_mask) POST_WRITE(user_mask, sizemask); 2700639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2701639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2702639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2703639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_create)(long clockid, long flags) {} 2704639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2705639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_create)(long res, long clockid, long flags) {} 2706639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2707639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_settime)(long ufd, long flags, const void *utmr, 2708639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *otmr) { 2709639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (utmr) PRE_READ(utmr, struct_itimerspec_sz); 2710639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2711639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2712639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_settime)(long res, long ufd, long flags, const void *utmr, 2713639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *otmr) { 2714639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2715639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (otmr) POST_WRITE(otmr, struct_itimerspec_sz); 2716639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2717639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2718639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2719639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(timerfd_gettime)(long ufd, void *otmr) {} 2720639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2721639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(timerfd_gettime)(long res, long ufd, void *otmr) { 2722639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2723639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (otmr) POST_WRITE(otmr, struct_itimerspec_sz); 2724639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2725639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2726639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2727639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(eventfd)(long count) {} 2728639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2729639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(eventfd)(long res, long count) {} 2730639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2731639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(eventfd2)(long count, long flags) {} 2732639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2733639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(eventfd2)(long res, long count, long flags) {} 2734639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2735639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_readdir)(long arg0, void *arg1, long arg2) {} 2736639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2737639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_readdir)(long res, long arg0, void *arg1, long arg2) { 2738639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov // Missing definition of 'struct old_linux_dirent'. 2739639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2740639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2741a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPRE_SYSCALL(pselect6)(long arg0, __sanitizer___kernel_fd_set *arg1, 2742a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *arg2, 2743a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *arg3, void *arg4, 2744a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov void *arg5) {} 2745639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2746a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy StepanovPOST_SYSCALL(pselect6)(long res, long arg0, __sanitizer___kernel_fd_set *arg1, 2747a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *arg2, 2748a3cb27e188bd23190ba7a41a8c62fa7cc5ac5544Evgeniy Stepanov __sanitizer___kernel_fd_set *arg3, void *arg4, 2749639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *arg5) { 2750639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2751639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg1) POST_WRITE(arg1, sizeof(*arg1)); 2752639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, sizeof(*arg2)); 2753639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg3) POST_WRITE(arg3, sizeof(*arg3)); 2754639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg4) POST_WRITE(arg4, struct_timespec_sz); 2755639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2756639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2757639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2758639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(ppoll)(__sanitizer_pollfd *arg0, long arg1, void *arg2, 2759639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const kernel_sigset_t *arg3, long arg4) { 2760639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg3) PRE_READ(arg3, arg4); 2761639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2762639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2763639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(ppoll)(long res, __sanitizer_pollfd *arg0, long arg1, void *arg2, 2764639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *arg3, long arg4) { 2765639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2766639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg0) POST_WRITE(arg0, sizeof(*arg0)); 2767639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (arg2) POST_WRITE(arg2, struct_timespec_sz); 2768639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2769639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2770639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2771639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(syncfs)(long fd) {} 2772639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2773639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(syncfs)(long res, long fd) {} 2774639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2775d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy StepanovPRE_SYSCALL(perf_event_open)(__sanitizer_perf_event_attr *attr_uptr, long pid, 2776d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov long cpu, long group_fd, long flags) { 2777d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov if (attr_uptr) PRE_READ(attr_uptr, attr_uptr->size); 2778d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov} 2779639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2780d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy StepanovPOST_SYSCALL(perf_event_open)(long res, __sanitizer_perf_event_attr *attr_uptr, 2781d7041c6617b10302be6849b55a88dc928fd7f6b8Evgeniy Stepanov long pid, long cpu, long group_fd, long flags) {} 2782639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2783639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(mmap_pgoff)(long addr, long len, long prot, long flags, long fd, 2784639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long pgoff) {} 2785639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2786639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(mmap_pgoff)(long res, long addr, long len, long prot, long flags, 2787639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long fd, long pgoff) {} 2788639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2789639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(old_mmap)(void *arg) {} 2790639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2791639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(old_mmap)(long res, void *arg) {} 2792639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2793639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(name_to_handle_at)(long dfd, const void *name, void *handle, 2794639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *mnt_id, long flag) {} 2795639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2796639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(name_to_handle_at)(long res, long dfd, const void *name, 2797639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov void *handle, void *mnt_id, long flag) {} 2798639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2799639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(open_by_handle_at)(long mountdirfd, void *handle, long flags) {} 2800639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2801639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(open_by_handle_at)(long res, long mountdirfd, void *handle, 2802639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2803639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2804639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(setns)(long fd, long nstype) {} 2805639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2806639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(setns)(long res, long fd, long nstype) {} 2807639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2808639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(process_vm_readv)(long pid, const __sanitizer_iovec *lvec, 2809639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long liovcnt, const void *rvec, long riovcnt, 2810639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2811639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2812639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(process_vm_readv)(long res, long pid, 2813639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const __sanitizer_iovec *lvec, long liovcnt, 2814639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *rvec, long riovcnt, long flags) { 2815639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2816639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (lvec) kernel_write_iovec(lvec, liovcnt, res); 2817639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2818639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 2819639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2820639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPRE_SYSCALL(process_vm_writev)(long pid, const __sanitizer_iovec *lvec, 2821639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long liovcnt, const void *rvec, long riovcnt, 2822639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov long flags) {} 2823639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2824639df402c4925acd3ea7bebff729a535e3f79964Evgeniy StepanovPOST_SYSCALL(process_vm_writev)(long res, long pid, 2825639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const __sanitizer_iovec *lvec, long liovcnt, 2826639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov const void *rvec, long riovcnt, long flags) { 2827639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (res >= 0) { 2828639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov if (lvec) kernel_read_iovec(lvec, liovcnt, res); 2829639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov } 2830639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} 28316c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 28326c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPRE_SYSCALL(fork)() { 28336c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov COMMON_SYSCALL_PRE_FORK(); 28346c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov} 28356c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 28366c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPOST_SYSCALL(fork)(long res) { 28376c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov COMMON_SYSCALL_POST_FORK(res); 28386c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov} 28396c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 28406c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPRE_SYSCALL(vfork)() { 28416c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov COMMON_SYSCALL_PRE_FORK(); 28426c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov} 28436c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov 28446c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry VyukovPOST_SYSCALL(vfork)(long res) { 28456c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov COMMON_SYSCALL_POST_FORK(res); 28466c21e11b36bb5ebf625463ca6724cf936ef0dc39Dmitry Vyukov} 2847639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov} // extern "C" 2848639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2849639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_SYSCALL 2850639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_READ 2851639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef PRE_WRITE 2852639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_SYSCALL 2853639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_READ 2854639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#undef POST_WRITE 2855639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov 2856639df402c4925acd3ea7bebff729a535e3f79964Evgeniy Stepanov#endif // SANITIZER_LINUX 2857