|
From: Nicholas N. <nj...@ca...> - 2004-11-16 12:58:10
|
CVS commit by nethercote:
Converted the io_* and mq_* syscalls.
M +120 -88 coregrind/vg_syscalls.c 1.215
M +2 -0 include/linux/vki.h 1.9
M +46 -23 memcheck/tests/scalar.c 1.46
M +313 -2 memcheck/tests/scalar.stderr.exp 1.38
--- valgrind/coregrind/vg_syscalls.c #1.214:1.215
@@ -6008,14 +6008,19 @@ POSTx(sys_rt_sigpending)
}
-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);
@@ -6039,12 +6044,23 @@ 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;
- /* long io_destroy (aio_context_t ctx); */
- PRINT("io_destroy ( %ul )",arg1);
+ PRINT("sys_io_destroy ( %llu )", (ULong)arg1);
+ PRE_REG_READ1(long, "io_destroy", vki_aio_context_t, ctx);
+
+ // 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) );
@@ -6056,9 +6072,12 @@ PRE(io_destroy)
}
-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)",
@@ -6069,5 +6088,5 @@ PRE(io_getevents)
}
-POST(io_getevents)
+POSTx(sys_io_getevents)
{
int i;
@@ -6096,15 +6115,17 @@ 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 );
+ 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) );
+ PRE_MEM_READ( "io_submit(iocb)", (Addr)cb, sizeof(struct vki_iocb) );
switch (cb->aio_lio_opcode) {
case VKI_IOCB_CMD_PREAD:
@@ -6117,28 +6138,34 @@ PRE(io_submit)
default:
- VG_(message)(Vg_DebugMsg,"Warning: unhandled io_submit opcode: %u\n",cb->aio_lio_opcode);
+ 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) {
@@ -6151,5 +6178,5 @@ PRE(mq_open)
}
-POST(mq_open)
+POSTx(sys_mq_open)
{
if (!fd_allowed(res, "mq_open", tid, True)) {
@@ -6162,17 +6189,18 @@ 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 )",
+ 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 );
@@ -6185,11 +6213,12 @@ 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 )",
+ 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 );
@@ -6205,5 +6234,5 @@ PRE(mq_timedreceive)
}
-POST(mq_timedreceive)
+POSTx(sys_mq_timedreceive)
{
POST_MEM_WRITE( arg2, arg3 );
@@ -6212,19 +6241,22 @@ POST(mq_timedreceive)
}
-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 );
@@ -6241,5 +6273,5 @@ PRE(mq_getsetattr)
}
-POST(mq_getsetattr)
+POSTx(sys_mq_getsetattr)
{
if (arg3 != 0)
@@ -6708,9 +6740,9 @@ static const struct sys_info sys_info[]
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 * ()
@@ -6745,13 +6777,13 @@ static const struct sys_info sys_info[]
// (__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) *
+ 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
};
--- valgrind/include/linux/vki.h #1.8:1.9
@@ -101,4 +101,5 @@ typedef struct {
typedef int __vki_kernel_key_t;
+typedef int __vki_kernel_mqd_t;
//----------------------------------------------------------------------
@@ -113,4 +114,5 @@ 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]]
--- valgrind/memcheck/tests/scalar.c #1.45:1.46
@@ -2,4 +2,17 @@
#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)
{
@@ -1025,22 +1038,32 @@ int main(void)
// __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
@@ -1153,26 +1176,26 @@ int main(void)
// __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
--- valgrind/memcheck/tests/scalar.stderr.exp #1.37:1.38
@@ -1629,5 +1629,5 @@
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)
@@ -1637,5 +1637,5 @@
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
@@ -3679,4 +3679,125 @@
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
-----------------------------------------------------
@@ -3891,4 +4012,194 @@
-----------------------------------------------------
-----------------------------------------------------
+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
-----------------------------------------------------
|