From: Nicholas Nethercote Date: Tue, 16 Nov 2004 12:58:04 +0000 (+0000) Subject: Converted the io_* and mq_* syscalls. X-Git-Tag: svn/VALGRIND_3_0_0~1291 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c026b316974107fa9930330c6f1845b79da85682;p=thirdparty%2Fvalgrind.git Converted the io_* and mq_* syscalls. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3022 --- diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index 15f4307046..ae4d3b33cd 100644 --- a/coregrind/vg_syscalls.c +++ b/coregrind/vg_syscalls.c @@ -5945,7 +5945,7 @@ PREx(sys_sigprocmask, SIG_SIM) &bigger_oldset ); if (oldset) - *oldset = bigger_oldset.sig[0]; + *oldset = bigger_oldset.sig[0]; } } @@ -6007,16 +6007,21 @@ POSTx(sys_rt_sigpending) POST_MEM_WRITE( arg1, sizeof(vki_sigset_t) ) ; } -PRE(io_setup) +// Nb: this wrapper is "Special" because we have to pad/unpad memory around +// the syscall itself, and this allows us to control exactly the code that +// gets run while the padding is in place. +PREx(sys_io_setup, Special) { SizeT size; Addr addr; - /* long io_setup (unsigned nr_events, aio_context_t *ctxp); */ - PRINT("io_setup ( %ul, %p )",arg1,arg2); + PRINT("sys_io_setup ( %u, %p )", arg1,arg2); + PRE_REG_READ2(long, "io_setup", + unsigned, nr_events, vki_aio_context_t *, ctxp); PRE_MEM_WRITE( "io_setup(ctxp)", arg2, sizeof(vki_aio_context_t) ); - size = PGROUNDUP(sizeof(struct vki_aio_ring) + arg1 * sizeof(struct vki_io_event)); + size = PGROUNDUP(sizeof(struct vki_aio_ring) + + arg1*sizeof(struct vki_io_event)); addr = VG_(find_map_space)(0, size, True); VG_(map_segment)(addr, size, VKI_PROT_READ|VKI_PROT_EXEC, SF_FIXED); @@ -6038,28 +6043,42 @@ PRE(io_setup) } } -PRE(io_destroy) -{ +// Nb: This wrapper is "Special" because we need 'size' to do the unmap +// after the syscall. We must get 'size' from the aio_ring structure, +// before the syscall, while the aio_ring structure still exists. (And we +// know that we must look at the aio_ring structure because Tom inspected the +// kernel and glibc sources to see what they do, yuk.) +PREx(sys_io_destroy, Special) +{ Segment *s = VG_(find_segment)(arg1); - struct vki_aio_ring *r = *(struct vki_aio_ring **)arg1; - SizeT size = PGROUNDUP(sizeof(struct vki_aio_ring) + r->nr * sizeof(struct vki_io_event)); + struct vki_aio_ring *r; + SizeT size; + + PRINT("sys_io_destroy ( %llu )", (ULong)arg1); + PRE_REG_READ1(long, "io_destroy", vki_aio_context_t, ctx); - /* long io_destroy (aio_context_t ctx); */ - PRINT("io_destroy ( %ul )",arg1); + // If we are going to seg fault (due to a bogus arg1) do it as late as + // possible... + r = *(struct vki_aio_ring **)arg1; + size = PGROUNDUP(sizeof(struct vki_aio_ring) + + r->nr*sizeof(struct vki_io_event)); set_result( VG_(do_syscall)(SYSNO, arg1) ); - - if (res == 0 && s != NULL && VG_(seg_contains)(s, arg1, size)) { + + if (res == 0 && s != NULL && VG_(seg_contains)(s, arg1, size)) { VG_TRACK( die_mem_munmap, arg1, size ); VG_(unmap_range)(arg1, size); - } -} + } +} -PRE(io_getevents) +PREx(sys_io_getevents, MayBlock) { - /* long io_getevents (aio_context_t ctx_id, long min_nr, long nr, - struct io_event *events, struct timespec *timeout); */ - PRINT("io_getevents ( %ul, %l, %l, %p, %p )",arg1,arg2,arg3,arg4,arg5); + PRINT("sys_io_getevents ( %llu, %lld, %lld, %p, %p )", + (ULong)arg1,(Long)arg2,(Long)arg3,arg4,arg5); + PRE_REG_READ5(long, "io_getevents", + vki_aio_context_t, ctx_id, long, min_nr, long, nr, + struct io_event *, events, + struct timespec *, timeout); if (arg3 > 0) PRE_MEM_WRITE( "io_getevents(events)", arg4, sizeof(struct vki_io_event)*arg3 ); @@ -6068,7 +6087,7 @@ PRE(io_getevents) arg5, sizeof(struct vki_timespec)); } -POST(io_getevents) +POSTx(sys_io_getevents) { int i; @@ -6095,51 +6114,59 @@ POST(io_getevents) } } -PRE(io_submit) +PREx(sys_io_submit, 0) { int i; - /* long io_submit (aio_context_t ctx_id, long nr, struct iocb **iocbpp); */ - PRINT("io_submit( %ul, %l, %p )",arg1,arg2,arg3); - PRE_MEM_READ( "io_submit(iocbpp)", arg3, sizeof(struct vki_iocb *)*arg2 ); - for (i = 0; i < arg2; i++) { - struct vki_iocb *cb = ((struct vki_iocb **)arg3)[i]; - PRE_MEM_READ( "io_submit(iocb)", - (Addr)cb, sizeof(struct vki_iocb) ); - switch (cb->aio_lio_opcode) { - case VKI_IOCB_CMD_PREAD: - PRE_MEM_WRITE( "io_submit(PREAD)", cb->aio_buf, cb->aio_nbytes ); - break; + PRINT("sys_io_submit( %llu, %lld, %p )", (ULong)arg1,(Long)arg2,arg3); + PRE_REG_READ3(long, "io_submit", + vki_aio_context_t, ctx_id, long, nr, + struct iocb **, iocbpp); + PRE_MEM_READ( "io_submit(iocbpp)", arg3, arg2*sizeof(struct vki_iocb *) ); + if (arg3 != (UWord)NULL) { + for (i = 0; i < arg2; i++) { + struct vki_iocb *cb = ((struct vki_iocb **)arg3)[i]; + PRE_MEM_READ( "io_submit(iocb)", (Addr)cb, sizeof(struct vki_iocb) ); + switch (cb->aio_lio_opcode) { + case VKI_IOCB_CMD_PREAD: + PRE_MEM_WRITE( "io_submit(PREAD)", cb->aio_buf, cb->aio_nbytes ); + break; - case VKI_IOCB_CMD_PWRITE: - PRE_MEM_READ( "io_submit(PWRITE)", cb->aio_buf, cb->aio_nbytes ); - break; - - default: - VG_(message)(Vg_DebugMsg,"Warning: unhandled io_submit opcode: %u\n",cb->aio_lio_opcode); - break; + case VKI_IOCB_CMD_PWRITE: + PRE_MEM_READ( "io_submit(PWRITE)", cb->aio_buf, cb->aio_nbytes ); + break; + + default: + VG_(message)(Vg_DebugMsg,"Warning: unhandled io_submit opcode: %u\n", + cb->aio_lio_opcode); + break; + } } } } -PRE(io_cancel) +PREx(sys_io_cancel, 0) { - /* long io_cancel (aio_context_t ctx_id, struct iocb *iocb, - struct io_event *result); */ - PRINT("io_cancel( %ul, %p, %p )",arg1,arg2,arg3); + PRINT("sys_io_cancel( %llu, %p, %p )", (ULong)arg1,arg2,arg3); + PRE_REG_READ3(long, "io_cancel", + vki_aio_context_t, ctx_id, struct iocb *, iocb, + struct io_event *, result); PRE_MEM_READ( "io_cancel(iocb)", arg2, sizeof(struct vki_iocb) ); PRE_MEM_WRITE( "io_cancel(result)", arg3, sizeof(struct vki_io_event) ); } -POST(io_cancel) +POSTx(sys_io_cancel) { POST_MEM_WRITE( arg3, sizeof(struct vki_io_event) ); } -PRE(mq_open) +PREx(sys_mq_open, 0) { - /* mqd_t mq_open(const char *name, int oflag, ...); */ - PRINT("mq_open( %p(%s), %d )", arg1,arg1,arg2); + PRINT("sys_mq_open( %p(%s), %d, %lld, %p )", + arg1,arg1,arg2,(ULong)arg3,arg4); + PRE_REG_READ4(long, "mq_open", + const char *, name, int, oflag, vki_mode_t, mode, + struct mq_attr *, attr); PRE_MEM_RASCIIZ( "mq_open(name)", arg1 ); if ((arg2 & VKI_O_CREAT) != 0 && arg4 != 0) { const struct vki_mq_attr *attr = (struct vki_mq_attr *)arg4; @@ -6150,7 +6177,7 @@ PRE(mq_open) } } -POST(mq_open) +POSTx(sys_mq_open) { if (!fd_allowed(res, "mq_open", tid, True)) { VG_(close)(res); @@ -6161,19 +6188,20 @@ POST(mq_open) } } -PRE(mq_unlink) +PREx(sys_mq_unlink, 0) { - /* int mq_unlink(const char *name) */ - PRINT("mq_unlink ( %p(%s) )",arg1, arg1); + PRINT("sys_mq_unlink ( %p(%s) )", arg1,arg1); + PRE_REG_READ1(long, "mq_unlink", const char *, name); PRE_MEM_RASCIIZ( "mq_unlink(name)", arg1 ); } -PRE(mq_timedsend) +PREx(sys_mq_timedsend, MayBlock) { - /* int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, - unsigned msg_prio, const struct timespec *abs_timeout); */ - PRINT("mq_timedsend ( %d, %p, %llu, %d, %p )", - arg1,arg2,(ULong)arg3,arg4,arg5); + PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )", + arg1,arg2,(ULong)arg3,arg4,arg5); + PRE_REG_READ5(long, "mq_timedsend", + vki_mqd_t, mqdes, const char *, msg_ptr, vki_size_t, msg_len, + unsigned int, msg_prio, const struct timespec *, abs_timeout); if (!fd_allowed(arg1, "mq_timedsend", tid, False)) { set_result( -VKI_EBADF ); } else { @@ -6184,13 +6212,14 @@ PRE(mq_timedsend) } } -PRE(mq_timedreceive) +PREx(sys_mq_timedreceive, MayBlock) { - /* ssize_t mq_timedreceive(mqd_t mqdes, char *restrict msg_ptr, - size_t msg_len, unsigned *restrict msg_prio, - const struct timespec *restrict abs_timeout); */ - PRINT("mq_timedreceive( %d, %p, %llu, %p, %p )", - arg1,arg2,(ULong)arg3,arg4,arg5); + PRINT("sys_mq_timedreceive( %d, %p, %llu, %p, %p )", + arg1,arg2,(ULong)arg3,arg4,arg5); + PRE_REG_READ5(ssize_t, "mq_timedreceive", + vki_mqd_t, mqdes, char *, msg_ptr, vki_size_t, msg_len, + unsigned int *, msg_prio, + const struct timespec *, abs_timeout); if (!fd_allowed(arg1, "mq_timedreceive", tid, False)) { set_result( -VKI_EBADF ); } else { @@ -6204,28 +6233,31 @@ PRE(mq_timedreceive) } } -POST(mq_timedreceive) +POSTx(sys_mq_timedreceive) { POST_MEM_WRITE( arg2, arg3 ); if (arg4 != 0) POST_MEM_WRITE( arg4, sizeof(unsigned int) ); } -PRE(mq_notify) +PREx(sys_mq_notify, 0) { - /* int mq_notify(mqd_t mqdes, const struct sigevent *notification); */ - PRINT("mq_notify( %d, %p )", arg1,arg2 ); + PRINT("sys_mq_notify( %d, %p )", arg1,arg2 ); + PRE_REG_READ2(long, "mq_notify", + vki_mqd_t, mqdes, const struct sigevent *, notification); if (!fd_allowed(arg1, "mq_notify", tid, False)) set_result( -VKI_EBADF ); else if (arg2 != 0) - PRE_MEM_READ( "mq_notify", arg2, sizeof(struct vki_sigevent) ); + PRE_MEM_READ( "mq_notify(notification)", + arg2, sizeof(struct vki_sigevent) ); } -PRE(mq_getsetattr) +PREx(sys_mq_getsetattr, 0) { - /* int mq_getsetattr(mqd_t mqdes, const struct mq_attr *restrict mqstat, - struct mq_attr *restrict omqstat); */ - PRINT("mq_getsetattr( %d, %p, %p )", arg1,arg2,arg3 ); + PRINT("sys_mq_getsetattr( %d, %p, %p )", arg1,arg2,arg3 ); + PRE_REG_READ3(long, "mq_getsetattr", + vki_mqd_t, mqdes, const struct mq_attr *, mqstat, + struct mq_attr *, omqstat); if (!fd_allowed(arg1, "mq_getsetattr", tid, False)) { set_result( -VKI_EBADF ); } else { @@ -6240,7 +6272,7 @@ PRE(mq_getsetattr) } } -POST(mq_getsetattr) +POSTx(sys_mq_getsetattr) { if (arg3 != 0) POST_MEM_WRITE( arg3, sizeof(struct vki_mq_attr) ); @@ -6707,11 +6739,11 @@ static const struct sys_info sys_info[] = { SYSB_(__NR_set_thread_area, sys_set_thread_area, Special), // 243 SYSB_(__NR_get_thread_area, sys_get_thread_area, Special), // 244 - SYSB_(__NR_io_setup, sys_io_setup, Special), // 245 * - SYSB_(__NR_io_destroy, sys_io_destroy, Special), // 246 * - SYSBA(__NR_io_getevents, sys_io_getevents, MayBlock), // 247 * - SYSB_(__NR_io_submit, sys_io_submit, 0), // 248 * - SYSBA(__NR_io_cancel, sys_io_cancel, 0), // 249 * + SYSX_(__NR_io_setup, sys_io_setup), // 245 * L + SYSX_(__NR_io_destroy, sys_io_destroy), // 246 * L + SYSXY(__NR_io_getevents, sys_io_getevents), // 247 * L + SYSX_(__NR_io_submit, sys_io_submit), // 248 * L + SYSXY(__NR_io_cancel, sys_io_cancel), // 249 * L // (__NR_fadvise64, sys_fadvise64), // 250 * () SYSX_(251, sys_ni_syscall), // 251 * P -- unused @@ -6744,16 +6776,16 @@ static const struct sys_info sys_info[] = { SYSX_(__NR_vserver, sys_ni_syscall), // 273 * P -- unimplemented // (__NR_mbind, sys_mbind), // 274 () () - // (__NR_get_mempolicy, sys_get_mempolicy), // 275 () () - // (__NR_set_mempolicy, sys_set_mempolicy), // 276 () () - SYSBA(__NR_mq_open, sys_mq_open, 0), // 277 * - SYSB_(__NR_mq_unlink, sys_mq_unlink, 0), // (mq_open+1) * - SYSB_(__NR_mq_timedsend, sys_mq_timedsend, MayBlock), // (mq_open+2) * + // (__NR_get_mempolicy, sys_get_mempolicy),// 275 () () + // (__NR_set_mempolicy, sys_set_mempolicy),// 276 () () + SYSXY(__NR_mq_open, sys_mq_open), // 277 * P? + SYSX_(__NR_mq_unlink, sys_mq_unlink), // (mq_open+1) * P? + SYSX_(__NR_mq_timedsend, sys_mq_timedsend), // (mq_open+2) * P? - SYSBA(__NR_mq_timedreceive, sys_mq_timedreceive, MayBlock), // (mq_open+3) * - SYSB_(__NR_mq_notify, sys_mq_notify, 0), // (mq_open+4) * - SYSBA(__NR_mq_getsetattr, sys_mq_getsetarr, 0), // (mq_open+5) * - SYSX_(__NR_sys_kexec_load, sys_ni_syscall), // 283 * P + SYSXY(__NR_mq_timedreceive, sys_mq_timedreceive), // (mq_open+3) * P? + SYSX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4) * P? + SYSXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5) * P? + SYSX_(__NR_sys_kexec_load, sys_ni_syscall), // 283 * P }; #define MAX_SYS_INFO (sizeof(sys_info)/sizeof(sys_info[0])) diff --git a/include/linux/vki.h b/include/linux/vki.h index 37c4e1f2e5..067dd5f27e 100644 --- a/include/linux/vki.h +++ b/include/linux/vki.h @@ -100,6 +100,7 @@ typedef struct { } __vki_kernel_fd_set; typedef int __vki_kernel_key_t; +typedef int __vki_kernel_mqd_t; //---------------------------------------------------------------------- // From linux-2.6.8.1/include/linux/types.h @@ -112,6 +113,7 @@ typedef __vki_kernel_pid_t vki_pid_t; typedef __vki_kernel_key_t vki_key_t; typedef __vki_kernel_suseconds_t vki_suseconds_t; typedef __vki_kernel_timer_t vki_timer_t; +typedef __vki_kernel_mqd_t vki_mqd_t; // [[Nb: it's a bit unclear due to a #ifdef, but I think this is right. --njn]] typedef __vki_kernel_uid32_t vki_uid_t; diff --git a/memcheck/tests/scalar.c b/memcheck/tests/scalar.c index f98e831b9b..723567b44e 100644 --- a/memcheck/tests/scalar.c +++ b/memcheck/tests/scalar.c @@ -1,6 +1,19 @@ #include "../memcheck.h" #include "scalar.h" +// Here we are trying to trigger every syscall error (scalar errors and +// memory errors) for every syscall. We do this by passing a lot of bogus +// arguments, mostly 0 and 1 (often it's 1 because NULL ptr args often aren't +// checked for memory errors, or in order to have a non-zero length used +// with some buffer). So most of the syscalls don't actually succeed and do +// anything. +// +// Occasionally we have to be careful not to cause Valgrind to seg fault in +// its pre-syscall wrappers; it does so because it can't know in general +// when memory is unaddressable, and so tries to dereference it when doing +// PRE_MEM_READ/PRE_MEM_WRITE calls. (Note that Memcheck and Addrcheck will +// always issue an error message immediately before these seg faults occur). + int main(void) { // uninitialised, but we know px[0] is 0x0 @@ -1024,24 +1037,34 @@ int main(void) //SY(__NR_get_thread_area); // __NR_io_setup 245 - //GO(__NR_io_setup, ".s .m"); - //SY(__NR_io_setup); + GO(__NR_io_setup, "2s 1m"); + SY(__NR_io_setup, x0, x0); // __NR_io_destroy 246 - //GO(__NR_io_destroy, ".s .m"); - //SY(__NR_io_destroy); + { + // jump through hoops to prevent the PRE(io_destroy) wrapper crashing. + struct fake_aio_ring { + unsigned id; /* kernel internal index number */ + unsigned nr; /* number of io_events */ + // There are more fields in the real aio_ring, but the 'nr' field is + // the only one used by the PRE() wrapper. + } ring = { 0, 0 }; + struct fake_aio_ring* ringptr = ˚ + GO(__NR_io_destroy, "1s 0m"); + SY(__NR_io_destroy, x0+&ringptr); + } // __NR_io_getevents 247 - //GO(__NR_io_getevents, ".s .m"); - //SY(__NR_io_getevents); + GO(__NR_io_getevents, "5s 2m"); + SY(__NR_io_getevents, x0, x0, x0+1, x0, x0+1); // __NR_io_submit 248 - //GO(__NR_io_submit, ".s .m"); - //SY(__NR_io_submit); + GO(__NR_io_submit, "3s 1m"); + SY(__NR_io_submit, x0, x0+1, x0); // __NR_io_cancel 249 - //GO(__NR_io_cancel, ".s .m"); - //SY(__NR_io_cancel); + GO(__NR_io_cancel, "3s 2m"); + SY(__NR_io_cancel, x0, x0, x0); // __NR_fadvise64 250 GO(__NR_fadvise64, "n/a"); @@ -1152,28 +1175,28 @@ int main(void) //SY(__NR_set_mempolicy); // (Not yet handled by Valgrind) // __NR_mq_open 277 - //GO(__NR_mq_open, ".s .m"); - //SY(__NR_mq_open); + GO(__NR_mq_open, "4s 2m"); + SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1); // __NR_mq_unlink (__NR_mq_open+1) - //GO(__NR_mq_unlink, ".s .m"); - //SY(__NR_mq_unlink); + GO(__NR_mq_unlink, "1s 1m"); + SY(__NR_mq_unlink, x0); // __NR_mq_timedsend (__NR_mq_open+2) - //GO(__NR_mq_timedsend, ".s .m"); - //SY(__NR_mq_timedsend); + GO(__NR_mq_timedsend, "5s 2m"); + SY(__NR_mq_timedsend, x0, x0, x0+1, x0, x0+1); // __NR_mq_timedreceive (__NR_mq_open+3) - //GO(__NR_mq_timedreceive, ".s .m"); - //SY(__NR_mq_timedreceive); - + GO(__NR_mq_timedreceive, "5s 3m"); + SY(__NR_mq_timedreceive, x0, x0, x0+1, x0+1, x0+1); + // __NR_mq_notify (__NR_mq_open+4) - //GO(__NR_mq_notify, ".s .m"); - //SY(__NR_mq_notify); + GO(__NR_mq_notify, "2s 1m"); + SY(__NR_mq_notify, x0, x0+1); // __NR_mq_getsetattr (__NR_mq_open+5) - //GO(__NR_mq_getsetattr, ".s .m"); - //SY(__NR_mq_getsetattr); + GO(__NR_mq_getsetattr, "3s 2m"); + SY(__NR_mq_getsetattr, x0, x0+1, x0+1); // __NR_sys_kexec_load 283 GO(__NR_sys_kexec_load, "ni"); diff --git a/memcheck/tests/scalar.stderr.exp b/memcheck/tests/scalar.stderr.exp index ef5c7951b6..e01ebe5c87 100644 --- a/memcheck/tests/scalar.stderr.exp +++ b/memcheck/tests/scalar.stderr.exp @@ -1628,7 +1628,7 @@ Syscall param sigprocmask(set) points to unaddressable byte(s) by 0x........: ... Address 0x........ is 0 bytes after a block of size 4 alloc'd at 0x........: malloc (vg_replace_malloc.c:...) - by 0x........: main (scalar.c:7) + by 0x........: main (scalar.c:20) Syscall param sigprocmask(oldset) points to unaddressable byte(s) at 0x........: syscall (in /...libc...) @@ -1636,7 +1636,7 @@ Syscall param sigprocmask(oldset) points to unaddressable byte(s) by 0x........: ... Address 0x........ is 0 bytes after a block of size 4 alloc'd at 0x........: malloc (vg_replace_malloc.c:...) - by 0x........: main (scalar.c:7) + by 0x........: main (scalar.c:20) ----------------------------------------------------- 127: __NR_create_module ni ----------------------------------------------------- @@ -3678,6 +3678,127 @@ Syscall param sched_getaffinity(mask) points to unaddressable byte(s) by 0x........: ... Address 0x........ is not stack'd, malloc'd or (recently) free'd ----------------------------------------------------- +245: __NR_io_setup 2s 1m +----------------------------------------------------- + +Syscall param io_setup(nr_events) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_setup(ctxp) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_setup(ctxp) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +246: __NR_io_destroy 1s 0m +----------------------------------------------------- + +Syscall param io_destroy(ctx) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... +----------------------------------------------------- +247: __NR_io_getevents 5s 2m +----------------------------------------------------- + +Syscall param io_getevents(ctx_id) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_getevents(min_nr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_getevents(nr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_getevents(events) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_getevents(timeout) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_getevents(events) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param io_getevents(timeout) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +248: __NR_io_submit 3s 1m +----------------------------------------------------- + +Syscall param io_submit(ctx_id) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_submit(nr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_submit(iocbpp) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_submit(iocbpp) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +249: __NR_io_cancel 3s 2m +----------------------------------------------------- + +Syscall param io_cancel(ctx_id) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_cancel(iocb) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_cancel(result) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param io_cancel(iocb) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param io_cancel(result) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- 250: __NR_fadvise64 n/a ----------------------------------------------------- ----------------------------------------------------- @@ -3890,6 +4011,196 @@ Syscall param utimes(tvp) points to unaddressable byte(s) 276: __NR_set_mempolicy n/a ----------------------------------------------------- ----------------------------------------------------- +277: __NR_mq_open 4s 2m +----------------------------------------------------- + +Syscall param mq_open(name) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_open(oflag) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_open(mode) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_open(attr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_open(name) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_open(attr->mq_maxmsg) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_open(attr->mq_msgsize) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +278: __NR_mq_unlink 1s 1m +----------------------------------------------------- + +Syscall param mq_unlink(name) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_unlink(name) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +279: __NR_mq_timedsend 5s 2m +----------------------------------------------------- + +Syscall param mq_timedsend(mqdes) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedsend(msg_ptr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedsend(msg_len) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedsend(msg_prio) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedsend(abs_timeout) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedsend(msg_ptr) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_timedsend(abs_timeout) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +280:__NR_mq_timedreceive 5s 3m +----------------------------------------------------- + +Syscall param mq_timedreceive(mqdes) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedreceive(msg_ptr) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedreceive(msg_len) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedreceive(msg_prio) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedreceive(abs_timeout) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_timedreceive(msg_ptr) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_timedreceive(msg_prio) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_timedreceive(abs_timeout) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +281: __NR_mq_notify 2s 1m +----------------------------------------------------- + +Syscall param mq_notify(mqdes) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_notify(notification) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_notify(notification) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +282: __NR_mq_getsetattr 3s 2m +----------------------------------------------------- + +Syscall param mq_getsetattr(mqdes) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_getsetattr(mqstat) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_getsetattr(omqstat) contains uninitialised byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + +Syscall param mq_getsetattr(mqstat->mq_flags) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + +Syscall param mq_getsetattr(omqstat) points to unaddressable byte(s) + at 0x........: syscall (in /...libc...) + by 0x........: __libc_start_main (...libc...) + by 0x........: ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- 283: __NR_sys_kexec_load ni ----------------------------------------------------- -----------------------------------------------------