/memcheck/tests/linux/.deps
/memcheck/tests/linux/aligned_alloc
/memcheck/tests/linux/brk
+/memcheck/tests/linux/bug480706
/memcheck/tests/linux/capget
/memcheck/tests/linux/check_preadv2_pwritev2
/memcheck/tests/linux/dlclose_leak
476331 clean up generated/distributed filter scripts
476535 Difference in allocation size for massif/tests/overloaded-new between
clang++/libc++ and g++/libstdc++
-476548 valgrind 3.22.0 fails on assertion when loading debuginfo file produced by mold
+476548 valgrind 3.22.0 fails on assertion when loading debuginfo file
+ produced by mold
476708 valgrind-monitor.py regular expressions should use raw strings
476780 Extend strlcat and strlcpy wrappers to GNU libc
476787 Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
480405 valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
Assertion '!sr_isError(sr)' failed."
480488 Add support for FreeBSD 13.3
+480706 Unhandled syscall 325 (mlock2)
n-i-bz Add redirect for memccpy
To see details of a given bug, visit
AM_CONDITIONAL([HAVE_OPENAT2],
[test x$ac_have_openat2 = xyes])
+# check for crypto
+
+safe_LIBS="$LIBS"
+LIBS="-lcrypto"
+AC_MSG_CHECKING([if platform has openssl crypto])
+
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ #include <openssl/crypto.h>
+]], [[
+ CRYPTO_secure_malloc_init(1<<20, 8);
+]])], [
+ ac_have_openssl=yes
+], [
+ ac_have_openssl=no
+])
+LIBS=$safe_LIBS
+
+AM_CONDITIONAL([HAVE_OPENSSL],
+ [test x$ac_have_openssl = xyes])
+
# does g++ have built-in functions for atomic memory access ?
AC_MSG_CHECKING([if g++ supports __sync_add_and_fetch])
DECL_TEMPLATE(generic, sys_getdents64); // * (SVr4,SVID?)
DECL_TEMPLATE(generic, sys_statfs64); // * (?)
DECL_TEMPLATE(generic, sys_fstatfs64); // * (?)
+DECL_TEMPLATE(generic, sys_mlock2); // * L
/* ---------------------------------------------------------------------
LINX_(__NR_setns, sys_setns), // 308
LINXY(__NR_getcpu, sys_getcpu), // 309
- LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 310
- LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 311
- LINX_(__NR_kcmp, sys_kcmp), // 312
- LINX_(__NR_finit_module, sys_finit_module), // 313
- LINX_(__NR_sched_setattr, sys_sched_setattr), // 314
- LINXY(__NR_sched_getattr, sys_sched_getattr), // 315
- LINX_(__NR_renameat2, sys_renameat2), // 316
-// LIN__(__NR_seccomp, sys_ni_syscall), // 317
- LINXY(__NR_getrandom, sys_getrandom), // 318
- LINXY(__NR_memfd_create, sys_memfd_create), // 319
-
-// LIN__(__NR_kexec_file_load, sys_ni_syscall), // 320
- LINXY(__NR_bpf, sys_bpf), // 321
- LINX_(__NR_execveat, sys_execveat), // 322
+ LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 310
+ LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 311
+ LINX_(__NR_kcmp, sys_kcmp), // 312
+ LINX_(__NR_finit_module, sys_finit_module), // 313
+ LINX_(__NR_sched_setattr, sys_sched_setattr), // 314
+ LINXY(__NR_sched_getattr, sys_sched_getattr), // 315
+ LINX_(__NR_renameat2, sys_renameat2), // 316
+// LIN__(__NR_seccomp, sys_ni_syscall), // 317
+ LINXY(__NR_getrandom, sys_getrandom), // 318
+ LINXY(__NR_memfd_create, sys_memfd_create), // 319
+
+// LIN__(__NR_kexec_file_load, sys_ni_syscall), // 320
+ LINXY(__NR_bpf, sys_bpf), // 321
+ LINX_(__NR_execveat, sys_execveat), // 322
+
+ GENX_(__NR_mlock2, sys_mlock2), // 325
LINXY(__NR_preadv2, sys_preadv2), // 327
LINX_(__NR_pwritev2, sys_pwritev2), // 328
LINX_(__NR_execveat, sys_execveat), // 387
LINX_(__NR_membarrier, sys_membarrier), // 389
+ GENX_(__NR_mlock2, sys_mlock2), // 390
LINX_(__NR_copy_file_range, sys_copy_file_range), // 391
LINXY(__NR_preadv2, sys_preadv2), // 392
LINX_(__NR_pwritev2, sys_pwritev2), // 393
LINX_(__NR_execveat, sys_execveat), // 281
// (__NR_userfaultfd, sys_ni_syscall), // 282
LINX_(__NR_membarrier, sys_membarrier), // 283
- // (__NR_mlock2, sys_ni_syscall), // 284
+ GENX_(__NR_mlock2, sys_mlock2), // 284
LINX_(__NR_copy_file_range, sys_copy_file_range), // 285
LINXY(__NR_preadv2, sys_preadv2), // 286
LINX_(__NR_pwritev2, sys_pwritev2), // 287
PRE_REG_READ1(long, "nice", int, inc);
}
+PRE(sys_mlock2)
+{
+ *flags |= SfMayBlock;
+ PRINT("sys_mlock2 ( %#" FMT_REGWORD "x, %" FMT_REGWORD "u, %" FMT_REGWORD "u )", ARG1, ARG2, ARG3);
+ PRE_REG_READ2(int, "mlock2", void*, addr, vki_size_t, len);
+}
+
PRE(sys_mlock)
{
*flags |= SfMayBlock;
LINX_ (__NR_execveat, sys_execveat), // 356
//..
LINX_ (__NR_membarrier, sys_membarrier), // 358
- //..
+ GENX_ (__NR_mlock2, sys_mlock2), // 359
LINX_ (__NR_copy_file_range, sys_copy_file_range), // 360
LINXY (__NR_preadv2, sys_preadv2), // 361
LINX_ (__NR_pwritev2, sys_pwritev2), // 362
LINXY (__NR_memfd_create, sys_memfd_create),
LINX_ (__NR_execveat, sys_execveat),
LINX_ (__NR_membarrier, sys_membarrier),
+ GENX_ (__NR_mlock2, sys_mlock2),
LINX_ (__NR_copy_file_range, sys_copy_file_range),
LINXY (__NR_preadv, sys_preadv),
LINX_ (__NR_pwritev, sys_pwritev),
LINX_ (__NR_execveat, sys_execveat),
// (__NR_userfaultfd, sys_ni_syscall),
LINX_ (__NR_membarrier, sys_membarrier),
- // (__NR_mlock2, sys_ni_syscall),
+ GENX_ (__NR_mlock2, sys_mlock2),
// (__NR_copy_file_range, sys_ni_syscall),
// (__NR_preadv2, sys_ni_syscall),
// (__NR_pwritev2, sys_ni_syscall),
LINX_ (__NR_execveat, sys_execveat), // 362
+ GENX_(__NR_mlock2, sys_mlock2). // 378
LINX_(__NR_copy_file_range, sys_copy_file_range), // 379
LINX_(__NR_preadv2, sys_preadv2), // 380
LINX_(__NR_pwritev2, sys_pwritev2), // 381
LINX_(__NR_membarrier, sys_membarrier), // 365
+ GENX_(__NR_mlock2, sys_mlock2), // 378
LINX_(__NR_copy_file_range, sys_copy_file_range), // 379
LINX_(__NR_preadv2, sys_preadv2), // 380
LINX_(__NR_pwritev2, sys_pwritev2), // 381
LINXY(__NR_recvfrom, sys_recvfrom), // 371
LINXY(__NR_recvmsg, sys_recvmsg), // 372
LINX_(__NR_shutdown, sys_shutdown), // 373
-
+ GENX_(__NR_mlock2, sys_mlock2), // 374
LINX_(__NR_copy_file_range, sys_copy_file_range), // 375
LINXY(__NR_preadv2, sys_preadv2), // 376
LINX_(__NR_pwritev2, sys_pwritev2), // 377
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 326
LINXY(__NR_signalfd4, sys_signalfd4), // 327
LINXY(__NR_eventfd2, sys_eventfd2), // 328
- LINXY(__NR_epoll_create1, sys_epoll_create1), // 329
+ LINXY(__NR_epoll_create1, sys_epoll_create1), // 329
LINXY(__NR_dup3, sys_dup3), // 330
LINXY(__NR_pipe2, sys_pipe2), // 331
LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 348
LINX_(__NR_kcmp, sys_kcmp), // 349
-// LIN__(__NR_finit_module, sys_ni_syscall), // 350
+// LIN__(__NR_finit_module, sys_ni_syscall), // 350
LINX_(__NR_sched_setattr, sys_sched_setattr), // 351
LINXY(__NR_sched_getattr, sys_sched_getattr), // 352
LINX_(__NR_renameat2, sys_renameat2), // 353
-// LIN__(__NR_seccomp, sys_ni_syscall), // 354
+// LIN__(__NR_seccomp, sys_ni_syscall), // 354
LINXY(__NR_getrandom, sys_getrandom), // 355
LINXY(__NR_memfd_create, sys_memfd_create), // 356
-// LIN__(__NR_bpf, sys_ni_syscall), // 357
+// LIN__(__NR_bpf, sys_ni_syscall), // 357
LINX_(__NR_execveat, sys_execveat), // 358
LINXY(__NR_socket, sys_socket), // 359
LINXY(__NR_socketpair, sys_socketpair), // 360
LINX_(__NR_shutdown, sys_shutdown), // 373
LINX_(__NR_membarrier, sys_membarrier), // 375
-
- LINX_(__NR_copy_file_range, sys_copy_file_range), // 377
- LINXY(__NR_preadv2, sys_preadv2), // 378
- LINX_(__NR_pwritev2, sys_pwritev2), // 379
+ GENX_(__NR_mlock2, sys_mlock2), // 376
+ LINX_(__NR_copy_file_range, sys_copy_file_range), // 377
+ LINXY(__NR_preadv2, sys_preadv2), // 378
+ LINX_(__NR_pwritev2, sys_pwritev2), // 379
LINXY(__NR_pkey_mprotect, sys_pkey_mprotect), // 380
LINX_(__NR_pkey_alloc, sys_pkey_alloc), // 381
aligned_alloc.stderr.exp-musl \
aligned_alloc.stderr.exp-glibc238 \
brk.stderr.exp brk.vgtest \
+ bug480706.stderr.exp bug480706.vgtest \
capget.vgtest capget.stderr.exp capget.stderr.exp2 capget.stderr.exp3 \
debuginfod-check.stderr.exp debuginfod-check.vgtest.in \
debuginfod-check.pl \
enomem \
memalign
+if HAVE_OPENSSL
+check_PROGRAMS += bug480706
+endif
+
if HAVE_AT_FDCWD
check_PROGRAMS += sys-openat
endif
stack_switch_LDADD = -lpthread
timerfd_syscall_LDADD = -lrt
+if HAVE_OPENSSL
+bug480706_LDFLAGS = ${AM_LDFLAGS} -lcrypto
+endif
+
# Build shared object for dlclose_leak
-dlclose_leak_so_so_SOURCES = dlclose_leak_so.c
-dlclose_leak_so_so_CFLAGS = $(AM_CFLAGS) -fpic -g -O0
-dlclose_leak_so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared -Wl,-soname \
+dlclose_leak_so_so_SOURCES = dlclose_leak_so.c
+dlclose_leak_so_so_CFLAGS = $(AM_CFLAGS) -fpic -g -O0
+dlclose_leak_so_so_LDFLAGS = -fpic $(AM_FLAG_M3264_PRI) -shared -Wl,-soname \
-Wl,dlclose_leak_so.so
dlclose_leak_SOURCES = dlclose_leak.c
--- /dev/null
+#include <openssl/crypto.h>
+
+int main(void)
+{
+ CRYPTO_secure_malloc_init(1<<20, 8);
+ CRYPTO_secure_malloc_done();
+ return 0;
+}
--- /dev/null
+prog: bug480706
+vgopts: -q
+