]> sourceware.org Git - valgrind.git/log
valgrind.git
10 days agoFreeBSD regtest: add fakes for FreeBSD < 13
Paul Floyd [Sun, 27 Oct 2024 17:59:12 +0000 (18:59 +0100)]
FreeBSD regtest: add fakes for FreeBSD < 13

Also try again to make mprotect fail. It doesn't fail
with a bogus 'prot' on FreeBSD 12.4.

10 days agoFreeBSD regtest: start removing versioned scalar variants
Paul Floyd [Sun, 27 Oct 2024 17:14:20 +0000 (18:14 +0100)]
FreeBSD regtest: start removing versioned scalar variants

10 days agoFreeBSD: put back stacktrace hack for syscalls in older versions
Paul Floyd [Sun, 27 Oct 2024 16:48:58 +0000 (17:48 +0100)]
FreeBSD: put back stacktrace hack for syscalls in older versions

10 days agoFreeBSD regtest: x86 scalar expected
Paul Floyd [Sun, 27 Oct 2024 14:27:38 +0000 (15:27 +0100)]
FreeBSD regtest: x86 scalar expected

10 days agoFreeBSD regtest: cleanup scalar
Paul Floyd [Sun, 27 Oct 2024 13:22:58 +0000 (14:22 +0100)]
FreeBSD regtest: cleanup scalar

Make more tests fail. Add a few more tests. Add some asserts
for tests that don't return -1 on failure.

11 days agoFreeBSD x86 scalar: update expected after fix for sigwait
Paul Floyd [Sun, 27 Oct 2024 09:54:23 +0000 (10:54 +0100)]
FreeBSD x86 scalar: update expected after fix for sigwait

11 days agoFreeBSD sigwait syscall: fixes for unusual return codes
Paul Floyd [Sun, 27 Oct 2024 08:15:31 +0000 (09:15 +0100)]
FreeBSD sigwait syscall: fixes for unusual return codes

sigwait doesn't follow the usual syscall convention of
returning -1 on error and setting errno. Instead it
returns errno and 0 means success.

Previously the POST was getting called on failure, potentially
resulting in memory getting incorrectly marked as accessible and
initialized.

Also only flag 'may block' if the first sigset argument is
accessible.

12 days agoFreeBSD Helgrind: turn off check for locks held on exit for FreeBSD 14.2
Paul Floyd [Fri, 25 Oct 2024 21:25:26 +0000 (23:25 +0200)]
FreeBSD Helgrind: turn off check for locks held on exit for FreeBSD 14.2

thread-safe exit included in FreeBSD 14.2-PRERELEASE

13 days agoTypos in comments about syscall stacktraces.
Paul Floyd [Fri, 25 Oct 2024 06:40:26 +0000 (08:40 +0200)]
Typos in comments about syscall stacktraces.

2 weeks agoPowerPC, dcbf instruction
Carl Love [Wed, 23 Oct 2024 23:25:23 +0000 (18:25 -0500)]
PowerPC, dcbf instruction

ISA 2.7 and ISA 3.0 "accepts" L = 0 to 3, ISA 3.1 "accepts: L = 0 to 7.
Removed the L field check so valgrind will match the real hardware.  For
the purposes of Valgrind the dcbf instruction is a NOP anyway so it will
not change the behavior of Valgrind.

3 weeks agoHelgrind: use static asserts in client requests
Paul Floyd [Tue, 15 Oct 2024 06:23:43 +0000 (08:23 +0200)]
Helgrind: use static asserts in client requests

Thanks, clangd.

3 weeks agoBug 494218 - Remove FREEBSD_VERS from configure and build
Paul Floyd [Sun, 6 Oct 2024 19:12:44 +0000 (21:12 +0200)]
Bug 494218 - Remove FREEBSD_VERS from configure and build

3 weeks agoBug 445235 - Java/Ada/D demangling is probably broken users/paulf/try-bug445235
Paul Floyd [Sat, 12 Oct 2024 14:03:22 +0000 (16:03 +0200)]
Bug 445235 - Java/Ada/D demangling is probably broken

Ada demangling is now functional.

There maybe some missing functionality like the _GLOBAL_
mentioned in the bugzilla item.

3 weeks agoFreeBSD regtest: add missing helgrind expecteds
Paul Floyd [Sat, 12 Oct 2024 11:18:41 +0000 (13:18 +0200)]
FreeBSD regtest: add missing helgrind expecteds

3 weeks agoFreeBSD helgrind: temporary (?) fix for Bug 494337
Paul Floyd [Sat, 12 Oct 2024 07:10:21 +0000 (09:10 +0200)]
FreeBSD helgrind: temporary (?) fix for Bug 494337

FreeBSD 15 has added a pthread lock to exit() to ensure that atexit handling
is thread safe. Unfortunately that lock gets leaked which messes up just about
all of the Helgrind tests.

Supression won't work as the callstack is the same for both genuine leaks
and this deliberate leak.

This change simply turns off the check for FreeBSD >= 15.

I see two possible proper fixes. One would be to allow one lock on exit.
The problem with that is that we will need to tell apart a clean exit
(1 lock allowed) and any kind of abort that doesn't call exit (no locks
allowed). That's going to be tricky as the Helgrind check is done before
we get back to core and know whether it is an abort or a clean exit.

The other thing would be to hack the lock counting. If we can detect that
it's a pthread_mutex_lock called from exit() then we could ignore that for
counting purposes. That would mean a possibly significant overhead for
each call to pthread_mutex_lock on FreeBSD.

3 weeks agoAdd none/tests/fdbaduse to .gitignore
Paul Floyd [Sat, 12 Oct 2024 06:24:09 +0000 (08:24 +0200)]
Add none/tests/fdbaduse to .gitignore

3 weeks agofd regtest: add filter to new fdbaduse testcase
Paul Floyd [Sat, 12 Oct 2024 05:39:00 +0000 (07:39 +0200)]
fd regtest: add filter to new fdbaduse testcase

3 weeks agoAdd BadFdExtra core error.
Alexandra Hájková [Tue, 25 Jun 2024 15:27:16 +0000 (11:27 -0400)]
Add BadFdExtra core error.

Introduce a new FdBadFd type with associated extra info struct.
Which for now just holds the fd number (no path or description).
fd_pp_Error and fd_update_extra have been updated to handle the
new type and produce xml when requested.

Rename showing_core_errors to showing_core_warning
(returns yes when the tools wants to show core errors,
-q isn't given and we aren't producing xml).

In ML_(fd_allowed) we now call VG_(maybe_record_error) to
generate a real error (that can be suppressed and shows up
in the xml output with full execution backtrace). For now
we also produce the legacy warnings when --track-fds=yes
isn't given.

Add none/tests/fdbaduse.vgtest to test the new FdBadUse
core error.

This is the first part of reporting bad fd usage errors.
We are also tracking already closed file descriptors which
should also produce errors like these. The current bad file
descriptors are just those that are negative or above the
current file limit of the process.

https://bugs.kde.org/show_bug.cgi?id=493418

4 weeks agoBug 494252 - s390x: Fix disassembly for LOCHI and friends
Florian Krohm [Wed, 9 Oct 2024 15:10:08 +0000 (17:10 +0200)]
Bug 494252 - s390x: Fix disassembly for LOCHI and friends

The disassembly for LOCHI, LOCGHI, and LOCHHI is bogus.  For instance, the
instruction

    lochi  %r3,7,5

is disassembled as

    lochi  %r5,3,0,.+10

instead of

    lochinhe %r3,7

It seems that s390_format_RIE_RUPIX was copy-pasted from
s390_format_RIS_RUPI without adjusting it appropriately.  Fix this.

Reviewed-by: Andreas Arnez <arnez@linux.ibm.com>
4 weeks agos390x: Add missing early-clobber to GET_STARTREGS
Andreas Arnez [Wed, 9 Oct 2024 15:10:08 +0000 (17:10 +0200)]
s390x: Add missing early-clobber to GET_STARTREGS

The inline assembly for GET_STARTREGS in m_libcassert.c writes to its
output before using the input argument.  But since the compiler doesn't
know this, it is allowed to allocate the same register for both, causing
problems.  This has been seen when compiling Valgrind with -O0, after
which memcheck/tests/leak-autofreepool-5 fails due to SIGSEGV.

Fix this by declaring the output as early-clobber, so the compiler knows
about the restriction.

4 weeks agoBug 493970 - s390x: Drop saving/restoring FPC upon helper call
Andreas Arnez [Wed, 9 Oct 2024 15:10:08 +0000 (17:10 +0200)]
Bug 493970 - s390x: Drop saving/restoring FPC upon helper call

Saving the FPC before each helper call and restoring it afterwards creates
unnecessary overhead, and it may also not be desirable.

Drop it.  Also remove the functions in host_s390_defs.c responsible for
emitting LFPC and STFPC instructions.  And since this frees up the FPC
save slot on the stack, adjust the stack layout accordingly.

4 weeks agoFix some issues with GSL for `make auxchecks'
Andreas Arnez [Wed, 9 Oct 2024 15:10:08 +0000 (17:10 +0200)]
Fix some issues with GSL for `make auxchecks'

When trying to reproduce Bug 423908, I ran into some trouble performing
`make auxchecks', due to problems in GSL:

Newer compilers complain about incompatible pointer types in argument
passing between

  unsigned int *

and

  size_t *

This affects the fifth argument of function gsl_eigen_jacobi() in
eigen/jacobi.c.  Fix this by passing the right pointer type at invocation.

Also, the configure checks for IEEE comparisons and for IEEE denormalized
values don't work as intended, because they call exit() without declaring
it and thus fail independently from those features being supported.  Fix
this by using `return' instead.

4 weeks agoFreeBSD regtest: one more scalar twiddle
Paul Floyd [Wed, 9 Oct 2024 06:03:36 +0000 (08:03 +0200)]
FreeBSD regtest: one more scalar twiddle

4 weeks agoAdd change to sigaltstack error messages to NEWS.
Paul Floyd [Tue, 8 Oct 2024 19:37:10 +0000 (21:37 +0200)]
Add change to sigaltstack error messages to NEWS.

4 weeks agoSolaris regtest: update scalar for sigaltstack changes
Paul Floyd [Tue, 8 Oct 2024 14:50:12 +0000 (16:50 +0200)]
Solaris regtest: update scalar for sigaltstack changes

4 weeks agomacOS regtest: give up trying to build bug492210.c
Paul Floyd [Tue, 8 Oct 2024 19:03:17 +0000 (21:03 +0200)]
macOS regtest: give up trying to build bug492210.c

macOS has to make everything difficult. Global names need
to be decorated with an underscore prefix. And you can't
just read from global variables, you have to do something
like a rip-relative lea.

4 weeks agoLinux regtest: update scalar expected for sigaltstack
Paul Floyd [Tue, 8 Oct 2024 12:09:52 +0000 (14:09 +0200)]
Linux regtest: update scalar expected for sigaltstack

4 weeks agoFreeBSD regtest: update x86 scalar expected
Paul Floyd [Tue, 8 Oct 2024 13:52:09 +0000 (15:52 +0200)]
FreeBSD regtest: update x86 scalar expected

4 weeks agosigaltstack syscall: improve error messages
Paul Floyd [Tue, 8 Oct 2024 11:19:08 +0000 (13:19 +0200)]
sigaltstack syscall: improve error messages

Previously the same message was generated for the 3 members of
stack_t.

Also on FreeBSD I get a Conditional jump error with this syscall
but not on all platforms, so I've added a suppression.

4 weeks agoFreeBSD regtest: fake missing syscalls on arm64 in scalar test
Paul Floyd [Mon, 7 Oct 2024 19:59:58 +0000 (21:59 +0200)]
FreeBSD regtest: fake missing syscalls on arm64 in scalar test

4 weeks agoFreeBSD regtest: add FAKE macros for scalar
Paul Floyd [Mon, 7 Oct 2024 05:34:59 +0000 (07:34 +0200)]
FreeBSD regtest: add FAKE macros for scalar

FreeBSD 15 removed the never-implemented sbrk syscall.
Arm64 also has a few missing syscalls (backward compat ones
that predate the arm64 port). Rather than having an ever
increasing number of expecteds the aim is to use these
FAKE macros. It's a bit fiddly to get the matching text.

4 weeks agoFreeBSD regtest: auxv test string map has version dependend size
Paul Floyd [Sat, 5 Oct 2024 14:10:02 +0000 (16:10 +0200)]
FreeBSD regtest: auxv test string map has version dependend size

4 weeks agoImplement /proc/self/exe readlink[at] fallback in POST handler
Mark Wielaard [Sun, 22 Sep 2024 21:24:34 +0000 (23:24 +0200)]
Implement /proc/self/exe readlink[at] fallback in POST handler

Calling the readlink[at] syscall directly from the PRE handler defeats
the FUSE_COMPATIBLE_MAY_BLOCK (SfMayBlock) flag. Add a POST handler
that only explicitly calls the readlink[at] handler for the
/proc/self/exe fallback (this should be fine unless /proc is also
implemented as fuse in this process).

Adjust readlink[at] GENX_ and LINX_ syswrap macros to GENXY and LINXY.

https://bugs.kde.org/show_bug.cgi?id=493507

4 weeks agoAdd missing FUSE_COMPATIBLE_MAY_BLOCKs
Mark Wielaard [Sat, 21 Sep 2024 20:27:24 +0000 (22:27 +0200)]
Add missing FUSE_COMPATIBLE_MAY_BLOCKs

Various syscalls (in particular "at" variants) PRE handlers were
missing a FUSE_COMPATIBLE_MAY_BLOCK statement.

Add it to the generic PRE handlers of access and statfs64. And the
linux PRE handlers of mknodat, fchownat, futimesat, utimensat,
utimensat_time64, renameat, renameat2, readlinkat, fchmodat,
fchmodat2, faccessat and faccessat2.

https://bugs.kde.org/show_bug.cgi?id=493454

4 weeks agoImplement stable variant of sync_file ioctls
Mark Wielaard [Sat, 31 Aug 2024 17:47:27 +0000 (19:47 +0200)]
Implement stable variant of sync_file ioctls

We implemented an old staging android variant of the sync_file
ioctls. But the data structures and ioctl numbers changed when these
were upstreamed in the table linux kernel.

This implements the SYNC_IOC_MERGE, SYNC_IOC_FILE_INFO and
SYNC_IOC_SET_DEADLINE ioctls. And makes sure to record the new file
descriptor created by SYNC_IOC_MERGE.

https://bugs.kde.org/show_bug.cgi?id=492422

5 weeks agoUpdate README.s390
Andreas Arnez [Tue, 1 Oct 2024 11:20:29 +0000 (13:20 +0200)]
Update README.s390

The link to the "z/Architecture Principles of Operation" document is out
of date.  Update it.

5 weeks agos390x: Add bug 440180 to NEWS
Andreas Arnez [Tue, 1 Oct 2024 11:12:44 +0000 (13:12 +0200)]
s390x: Add bug 440180 to NEWS

As reported in Bug 440180, the s390x disassembler could run into an
assertion failure due to the maximum mnemonic length being exceeded.  This
was fixed with commit 67a2bb759a7c9c76fd6aa142bdb6fe342a5998e2.

5 weeks agoFreeBSD regtest: remove unneeded expected file
Paul Floyd [Mon, 30 Sep 2024 19:09:15 +0000 (21:09 +0200)]
FreeBSD regtest: remove unneeded expected file

Previously I had #ifdef'd the freebsd7 compatibility syscalls
in the scalar test for all platforms when adding the arm64
port. They are now back for amd64 and x86 so the previous
expected also covers FreeBSD >= 14.0 and the extra expected
file is now superfluous and removed.

5 weeks agoFreeBSD syscalls and regtest, cleanup freebsd7 compatible syscalls on arm64
Paul Floyd [Mon, 30 Sep 2024 18:52:58 +0000 (20:52 +0200)]
FreeBSD syscalls and regtest, cleanup freebsd7 compatible syscalls on arm64

None of the freebsd7 interfaces exist on arm64 as the OS
wasn't ported until well after FreeBSD 7.

5 weeks agoLinux regtest: fix for memcheck/tests/amd64/bug492210
Paul Floyd [Sun, 29 Sep 2024 18:22:10 +0000 (18:22 +0000)]
Linux regtest: fix for memcheck/tests/amd64/bug492210

On Arch Linux I get an error concerning the use of PIE and
an uninitialized variable warning. Add the no PIE flag
and also turn off the warning.

5 weeks agomacOS: fix build after changes for Bug 492663
Paul Floyd [Sun, 29 Sep 2024 18:08:21 +0000 (20:08 +0200)]
macOS: fix build after changes for Bug 492663

Missed updating the macOS sections.

5 weeks agoFreeBSD procctl syscall: change arg name in error messages
Paul Floyd [Sun, 29 Sep 2024 08:02:33 +0000 (10:02 +0200)]
FreeBSD procctl syscall: change arg name in error messages

The man page was inconsistent in the use of 'data' or 'arg'
for the fourth argument. I chose to use 'arg'. The manpage
has now been cleaned up and uses 'data'. So I'm switching to
use the same name.

5 weeks agoFreeBSD: start reducing uses of FREEBSD_VERS
Paul Floyd [Sun, 29 Sep 2024 07:32:11 +0000 (09:32 +0200)]
FreeBSD: start reducing uses of FREEBSD_VERS

The goal is to remove version checking from configure.ac,
like Linux. There's a long way to go still.

5 weeks agoCompiler warning in ML_(check_elf_and_get_rw_loads) again
Paul Floyd [Sat, 28 Sep 2024 06:32:35 +0000 (08:32 +0200)]
Compiler warning in ML_(check_elf_and_get_rw_loads) again

This fime for p_vaddr

5 weeks agoCompiler warning in ML_(check_elf_and_get_rw_loads)
Paul Floyd [Sat, 28 Sep 2024 06:20:25 +0000 (08:20 +0200)]
Compiler warning in ML_(check_elf_and_get_rw_loads)

GCC 12.2 complains that
 previous_rw_a_phdr.p_vaddr + previous_rw_a_phdr.p_filesz
may be using p_filesz uninitialized

That's only possible if ML_(img_get) somehow fails to read all
of a program header such that p_memsz is greater than 0 but
p_filesz remains uninitialized. Hardly likely since p_memsz
comes after p_filesz in the structure.

5 weeks agoFreeBSD: remove code for FreeBSD 10
Paul Floyd [Fri, 27 Sep 2024 20:18:24 +0000 (22:18 +0200)]
FreeBSD: remove code for FreeBSD 10

FreeBSD 10 was never really tested - fully working FreeBSD support
arrived around the time of FreeBSD 11.3 and 12.1. FreeBSD had
already been EOL around 2 years by then.

7 weeks agoFreeBSD regtest: fix "filter_fdleak is missing in dist_noinst_SCRIPTS"
Paul Floyd [Mon, 16 Sep 2024 06:13:15 +0000 (08:13 +0200)]
FreeBSD regtest: fix "filter_fdleak is missing in dist_noinst_SCRIPTS"

7 weeks agoComments: update comments added for Bug 492663
Paul Floyd [Mon, 16 Sep 2024 06:07:15 +0000 (08:07 +0200)]
Comments: update comments added for Bug 492663

7 weeks agoBug 492210 - False positive on x86/amd64 with ZF taken directly from addition
Paul Floyd [Sun, 15 Sep 2024 07:52:56 +0000 (09:52 +0200)]
Bug 492210 - False positive on x86/amd64 with ZF taken directly from addition

Also adds similar checks for short and char equivalents to the
original int reproducer.

Initial fix provided by
   Alexander Monakov <amonakov@gmail.com>

Two versions of the testcase, one with default options and one with
-expensive-definedness-checks=yes because the byte operations
subb and addb need the flag turned on explicitly.

7 weeks agoFreeBSD: add file descriptor tracking for _umtx_op
Paul Floyd [Sat, 14 Sep 2024 18:56:54 +0000 (20:56 +0200)]
FreeBSD: add file descriptor tracking for _umtx_op

UMTX_OP_SHM with a sub request of UMTX_SHM_CREAT creates
an anonymous shared memory object and returns a file
descriptor. This fd is now tracked when required.

7 weeks agoFreeBSD 13.4: change conditional compilation for recent syscalls
Paul Floyd [Fri, 13 Sep 2024 07:34:26 +0000 (09:34 +0200)]
FreeBSD 13.4: change conditional compilation for recent syscalls

7 weeks agoFreeBSD: initial support for version 13.4
Paul Floyd [Fri, 13 Sep 2024 06:47:23 +0000 (08:47 +0200)]
FreeBSD: initial support for version 13.4

8 weeks agos390x: Add MSA support
Andreas Arnez [Tue, 10 Sep 2024 16:38:49 +0000 (18:38 +0200)]
s390x: Add MSA support

Handle instructions that were added to z/Architecture with the
message-security assist (MSA) facility or with one of its extensions up to
MSA extension 9:

   km -- ``cipher message''
   kmc -- ``cipher message with chaining''
   kimd -- ``compute intermediate message digest''
   klmd -- ``compute last message digest''
   kmac -- ``compute message authentication code''
   kmf -- ``cipher message with cipher feedback''
   kmctr -- ``cipher message with counter''
   kmo -- ``cipher message with output feedback''
   pcc -- ``perform cryptographic computation''
   kma -- ``cipher message with authentication''
   kdsa -- ``compute digital signature authentication''

Each of these instructions has multiple functions.  Support all functions
described by MSA levels up to extension 9.  Handle the instructions as
"extensions" and essentially forward them to the instructions themselves,
as long as they are available on the host.

Note that the MSA-3 instruction

   pkcmo -- ``perform cryptographic key management operation''

will not be handled by this change, since it is privileged and should not
occur in user-space programs.

The MSA facilities are typically used by cryptographic libraries like
OpenSSL or openCryptoki.  So far Valgrind suppresses the facility bits
indicating any MSA support, which causes such libraries to revert to a
software implementation.

This change enables running cryptographic applications under Valgrind
without reverting to an alternate code path.

8 weeks agoFreeBSD nightly: increase parallel build to 4 jobs
Paul Floyd [Mon, 9 Sep 2024 05:51:51 +0000 (07:51 +0200)]
FreeBSD nightly: increase parallel build to 4 jobs

7 months agoAdd 492663 to NEWS
Paul Floyd [Sat, 16 Mar 2024 03:51:37 +0000 (04:51 +0100)]
Add 492663 to NEWS

2 months agoFreeBSD suppression: reachables from libc scanf and srand
Paul Floyd [Sat, 7 Sep 2024 10:02:50 +0000 (12:02 +0200)]
FreeBSD suppression: reachables from libc scanf and srand

Still no libc freeres on FreeBSD.

2 months agoBug 492663 - Valgrind ignores debug info for some binaries
Paul Floyd [Sat, 7 Sep 2024 07:06:03 +0000 (09:06 +0200)]
Bug 492663 - Valgrind ignores debug info for some binaries

ML_(check_elf_and_get_rw_loads) now always checks for
merged PT_LOADs when called from valgrind_main when
iterating over nsegments.

Updated comments and changed variable names and the
debug message when the number of expected RW PT_LOADs
hasn't been reached.

2 months agoLinux regtest: add gdbserver filter for debuginfod messages
Paul Floyd [Fri, 6 Sep 2024 19:47:38 +0000 (21:47 +0200)]
Linux regtest: add gdbserver filter for debuginfod messages

2 months agovalgrind testing: fix vg_regtest individual-test mode
Frank Ch. Eigler [Tue, 3 Sep 2024 17:30:13 +0000 (13:30 -0400)]
valgrind testing: fix vg_regtest individual-test mode

One of the new log files was created in a way that was
oblivious to the chdir()'s in effect in the perl script.

Signed-off-by: Frank Ch. Eigler <fche@redhat.com>
2 months agoNEWS: Add 492214 sys_statx: support for statx(fd, NULL, AT_EMPTY_PATH)
Mark Wielaard [Mon, 2 Sep 2024 17:17:05 +0000 (19:17 +0200)]
NEWS: Add 492214 sys_statx: support for statx(fd, NULL, AT_EMPTY_PATH)

This was resolved in commit de408f75bf28d76a0016325b75f14be45631472a

2 months agoFreeBSD regtest: add an expected for FreeBSD 14.1 amd64
Paul Floyd [Sun, 1 Sep 2024 19:45:24 +0000 (21:45 +0200)]
FreeBSD regtest: add an expected for FreeBSD 14.1 amd64

Some old FreeBSD 7 syscalls have been removed.

2 months agosys_statx: support for statx(fd, NULL, AT_EMPTY_PATH)
Miao Wang [Mon, 26 Aug 2024 14:08:43 +0000 (22:08 +0800)]
sys_statx: support for statx(fd, NULL, AT_EMPTY_PATH)

statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11 and this
patch adds the support to valgrind, so that it won't complain when
NULL is used as |filename| and |flags| includes AT_EMPTY_PATH.

Ref: commit 0ef625bba6fb ("vfs: support statx(..., NULL, AT_EMPTY_PATH, ...)")

Signed-off-by: Miao Wang <shankerwangmiao@gmail.com>
2 months agoLinux: updates to stat scructs
Paul Floyd [Tue, 27 Aug 2024 05:39:48 +0000 (07:39 +0200)]
Linux: updates to stat scructs

I added these as part of the work on bug 317127.

2 months agovalgrind testing: extend vg_regtest to emit automake-style .trs/.log files
Frank Ch. Eigler [Fri, 19 Jul 2024 15:55:03 +0000 (11:55 -0400)]
valgrind testing: extend vg_regtest to emit automake-style .trs/.log files

Extend vg_regtest to produce automake-style log files for each vgtest
case, so that developers and testsuite archiving/analysis tools such
as bunsen can examine passing as well as non-passing test outputs in
detail.  The build-tree test-suite-overall.log file holds all the key
information about tests, especially failures.

Signed-Off-By: Frank Ch. Eigler <fche@redhat.com>
2 months agoBug 491394i - (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map && di->fsm...
Paul Floyd [Tue, 20 Aug 2024 19:44:00 +0000 (21:44 +0200)]
Bug 491394i - (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map && di->fsm.rw_map_count' failed.

2 months agos390x: Fix PC calculations with EX/EXRL
Andreas Arnez [Mon, 19 Aug 2024 13:22:40 +0000 (15:22 +0200)]
s390x: Fix PC calculations with EX/EXRL

When executing under EX or EXRL, some instructions yield wrong results
under Valgrind.  This affects

* PC-relative instructions such as LARL or BRC

* instructions that set a link register, such as BASR

The issue is caused by confusions about the various instruction addresses
involved.  When executing an instruction under EX or EXRL, the following
addresses are relevant:

(1) The address of the execute instruction (guest_IA_curr_instr).  This is
needed when restarting the instruction or iterating over it.

(2) The address following the execute instruction (guest_IA_next_instr).
This is what a link register needs to be set to.

(3) The address of the target instruction.  This is the base for relative
addressing.

The latter isn't handled at all when translating for EX/EXRL.  And the
instructions that set a link register don't use guest_IA_next_instr, but
add their own instruction length to guest_IA_curr_instr.  This is wrong
whenever the target instruction and the EX/EXRL instruction have different
lengths.

Fix all this and enhance the test cases accordingly.  The updated test
cases fail before this patch and succeed afterwards.

2 months agos390x: Fix performance issue with EXRL
Andreas Arnez [Tue, 13 Aug 2024 11:52:07 +0000 (13:52 +0200)]
s390x: Fix performance issue with EXRL

Valgrind can currently run into a situation where a code block containing
EXRL is re-translated over and over, potentially causing extreme
slow-down.  Such a slow-down has been observed when running the following
command under Valgrind:

  openssl kdf -digest sha512 -keylen 20 -kdfopt pass:12345678 \
    -kdfopt salt:abcdefgh -kdfopt iter:100000 PBKDF2

z/Architecture has the "execute" instructions EX and EXRL.  Valgrind
handles EX by translating it at least twice.  The first translation just
copies the target instruction to the variable `last_execute_target' and
triggers a "restart", invalidating the current BB and creating a new BB
that starts with EX.  The second translation contains the IR for the
instruction in `last_execute_target', but first checks if this still
matches the instruction to be executed.  If not, it initiates a "restart",
as above.  For EXRL there is a shortcut that sets `last_execute_target'
without going through the first translation.

Now the combination of two issues in the current implemenation typically
leads to an EXRL being translated every time:

(1) An EXRL can appear in the middle of a BB.  If so, a "restart" will
    discard everything in the BB up to this point.  And when getting back
    to the same instructions, everything will be re-translated again.

(2) After commit 7e9113cb7a249e0fae2a365462c6b016 (handling Bug 405403),
    the shortcut in s390_irgen_EXRL() only fills 6 instead of 8 bytes into
    `last_execute_target', while the check still compares this to 8 bytes
    from the target location.  Thus the check usually fails, triggering a
    "restart" of EXRL.

The first issue does not apply to EX, because there was already logic for
terminating a BB before an EX instruction.  Just extend that logic and
treat EXRL the same way.

The second issue is caused by the discrepancy of reading 6 versus 8 bytes
and comparing these two.  But in fact, reading 6 or 8 bytes are both
incorrect.  Only the bytes that belong to the instruction should be read
and compared.  The instruction length can be determined from the first
byte `b' at the target location (2 bytes if b < 0x40, 4 bytes if b < 0xc0,
and 6 bytes otherwise), so do this.

2 months agos390x: Fix disassembly of locfh/locfhr, update S390_MAX_MNEMONIC_LEN
Andreas Arnez [Thu, 8 Aug 2024 12:56:50 +0000 (14:56 +0200)]
s390x: Fix disassembly of locfh/locfhr, update S390_MAX_MNEMONIC_LEN

The length of the "longest mnemonic" for the s390x disassembler is
currently defined in s390_defs.h to be 8 characters, where in fact it
should be 9.  Update the constant to reflect that.

Also fix the disassembly of the instructions locfh and locfhr, changing
them from their current wrong representations `locgh' and `locghr'.

3 months agoconfigure: drop -flto-partition=one
Sam James [Mon, 22 Jul 2024 11:26:39 +0000 (12:26 +0100)]
configure: drop -flto-partition=one

For me, -flto-partition=one takes ~35m to build + test, while the default
(which is 'balanced') takes ~5m.

The reason that -flto-partition=one is slower is because it disables all
of gcc's LTO parallelisation. This can produce better code, at the cost
of (far) more expensive build times. If users want that, they can still
pass it in their *FLAGS, but I don't think it's a suitable default.

This was originally added in ab773096df7aaaf46e8883af5ed4690f4d4499af.

https://bugs.kde.org/show_bug.cgi?id=490651

3 months agos390x: Re-implement STFLE as an extension
Andreas Arnez [Wed, 10 Jul 2024 16:47:07 +0000 (18:47 +0200)]
s390x: Re-implement STFLE as an extension

The existing implementation of the STFLE instruction does not use the
correct operand size when tracking memory effects.  Instead of respecting
the user-provided maximum number of doublewords and the returned value
from the instruction, it assumes a hard coded value (S390_NUM_FACILITY_DW)
instead.

For example, if an application passes a buffer of 3 doublewords to STFLE
while Valgrind assumes a fixed size of 4 doublewords, Valgrind may falsely
complain about an invalid write for the last doubleword.

Fix this by re-implementing STFLE via the extension mechanism.

3 months agos390x: Fix PRNO for SHA-512-DRNG generate
Andreas Arnez [Wed, 10 Jul 2024 16:47:07 +0000 (18:47 +0200)]
s390x: Fix PRNO for SHA-512-DRNG generate

In the implementation of PRNO, when handling the "SHA-512-DRNG generate"
operation, the updated length is written back to the wrong register.
Also, while the instruction fills the output buffer from right-to-left,
the memory tracking is done as if it were the other way around.  Fix both
of these issues.

3 months agomanual: fix broken link to info on gxx free store
Paul Floyd [Wed, 10 Jul 2024 06:49:55 +0000 (08:49 +0200)]
manual: fix broken link to info on gxx free store

3 months agoFix typo in a configure.ac comment.
Philippe Waroquiers [Tue, 9 Jul 2024 19:14:36 +0000 (21:14 +0200)]
Fix typo in a configure.ac comment.

LTO_RANLIG -> LTO_RANLIB

4 months agoregtest: fix regression in posix_memalign test
Paul Floyd [Sun, 7 Jul 2024 16:42:53 +0000 (18:42 +0200)]
regtest: fix regression in posix_memalign test

4 months agoSolaris regtest: warning clearup
Paul Floyd [Sun, 7 Jul 2024 09:02:14 +0000 (11:02 +0200)]
Solaris regtest: warning clearup

4 months agovgdb: Handle EINTR and EAGAIN more consistently
Mark Wielaard [Wed, 3 Jul 2024 13:51:06 +0000 (15:51 +0200)]
vgdb: Handle EINTR and EAGAIN more consistently

Always handle EINTR or EAGAIN when calling read or write. Also be
consistent in the use of size_t and ssize_t for arguments and return
values.

This should make vgdb more robust against receiving signals or a
blocked pipe at the wrong time.

https://bugs.kde.org/show_bug.cgi?id=489676

4 months agoAvoid dev/inode check on btrfs with --sanity-level=3
Mark Wielaard [Thu, 4 Jul 2024 13:21:39 +0000 (15:21 +0200)]
Avoid dev/inode check on btrfs with --sanity-level=3

With --sanity-level=3 or higher the aspacemgr sanity checks the
device/inode numbers from /proc/self/maps to the file stat
results. These don't match on btrfs. So detect when a file is on a
btrfs volume and ignore the check in that case.

https://bugs.kde.org/show_bug.cgi?id=317127

4 months agogdbserver_tests filters remove more verbose python rpm load warnings
Mark Wielaard [Thu, 4 Jul 2024 16:04:18 +0000 (18:04 +0200)]
gdbserver_tests filters remove more verbose python rpm load warnings

The rpm python load warnings on Fedora became even more verbose.
Filter out all stderr messages related to them so tests don't fail.

4 months agoVEX/priv/host_arm_isel.c (doHelperCall): Fix nextArgReg guard
Mark Wielaard [Tue, 2 Jul 2024 14:47:19 +0000 (16:47 +0200)]
VEX/priv/host_arm_isel.c (doHelperCall): Fix nextArgReg guard

We need two args, so change the guard to nextArgReg + 1 >= ARM_N_ARGREGS.

4 months agoarm64 regtest: bug489338 testcase needs to link with maths library on Linux
Paul Floyd [Mon, 1 Jul 2024 11:47:07 +0000 (13:47 +0200)]
arm64 regtest: bug489338 testcase needs to link with maths library on Linux

4 months agoarm64 regtest: add 2 tests for bug489338
Paul Floyd [Mon, 1 Jul 2024 06:24:39 +0000 (08:24 +0200)]
arm64 regtest: add 2 tests for bug489338

4 months agoarm64: Fix fcvtas instruction.
Bernhard Übelacker [Thu, 27 Jun 2024 20:51:09 +0000 (22:51 +0200)]
arm64: Fix fcvtas instruction.

4 months agoImplement VMOVQ xmm1, xmm2/m64
Mark Wielaard [Sun, 30 Jun 2024 18:17:32 +0000 (20:17 +0200)]
Implement VMOVQ xmm1, xmm2/m64

We implemented the memory variant already, but not the reg variant.
Add a separate avx-vmovq testcase, because avx-1 is already really big.

https://bugs.kde.org/show_bug.cgi?id=391148
https://bugs.kde.org/show_bug.cgi?id=417572
https://bugs.kde.org/show_bug.cgi?id=489088

4 months agoBug 489040 massif trace change to show the location increasing the stack
Philippe Waroquiers [Sun, 30 Jun 2024 10:07:11 +0000 (12:07 +0200)]
Bug 489040 massif trace change to show the location increasing the stack

Massif verbose output showing the code location that increases the stack.

4 months agoAdd track-fds-exec-children to .gitignore
Paul Floyd [Sun, 30 Jun 2024 05:29:24 +0000 (07:29 +0200)]
Add track-fds-exec-children to .gitignore

4 months agogdbserver_tests filters remove python rpm module load warning
Mark Wielaard [Mon, 24 Jun 2024 12:56:37 +0000 (14:56 +0200)]
gdbserver_tests filters remove python rpm module load warning

gdb on Fedora will warn not being able to load the rpm python module.
Unable to load 'rpm' module.  Please install the python3-rpm package.
Filter out that message so tests don't fail.

4 months agoupdate NEWS with fix for #444781
Petar Jovanovic [Mon, 24 Jun 2024 11:03:12 +0000 (11:03 +0000)]
update NEWS with fix for #444781

The KDE issue #444781 has been fixed in

  commit efaa17e53a750d5f0f4c138b507b1b104729ed67
  mips: skip using shared syscall numbers for mips64

  commit 54d6ad3348fb50f5b972fe9c05d0d8757bfe73ba
  mips: skip using shared syscall numbers for mips32

4 months agomips: skip using shared syscall numbers for mips64
Petar Jovanovic [Mon, 24 Jun 2024 10:33:46 +0000 (10:33 +0000)]
mips: skip using shared syscall numbers for mips64

mips does not use shared syscall numbers, so we can not use
vki-scnums-shared-linux.h.

This fixes KDE #444781.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Aleksandar Rikalo <arikalo@gmail.com>
4 months agoAdd bug 479661 to NEWS
Mark Wielaard [Sun, 23 Jun 2024 19:40:11 +0000 (21:40 +0200)]
Add bug 479661 to NEWS

This was fixed in commit 1263471efdf8
"Close both internal pipe fds after VG_(fork) in parent and child".

4 months agoDon't allow programs calling fnctl on valgrind's own file descriptors
Alexandra Hájková [Thu, 20 Jun 2024 11:45:56 +0000 (07:45 -0400)]
Don't allow programs calling fnctl on valgrind's own file descriptors

Add a call to ML_(fd_allowed) in the PRE handler of fcntl and fcntl64
and block syscalls with EBADF when the file descriptor isn't allowed
to be used by the program.

https://bugs.kde.org/show_bug.cgi?id=337388

4 months agoFreeBSD configure: missed splitting freebsd_14 to freebsd_14_0
Paul Floyd [Mon, 17 Jun 2024 19:32:44 +0000 (21:32 +0200)]
FreeBSD configure: missed splitting freebsd_14 to freebsd_14_0

Affects building a few regression tests.

4 months agoClose both internal pipe fds after VG_(fork) in parent and child
Mark Wielaard [Sun, 16 Jun 2024 22:27:12 +0000 (00:27 +0200)]
Close both internal pipe fds after VG_(fork) in parent and child

An VG_fork() creates a pipe between parent and child to syncronize the
two processes. The parent wants to register the child pid before the
child can run. This is done in register_sigchld_ignore.

Make sure both the parent and the child close both the read and write
file descriptors so none leak.

https://bugs.kde.org/show_bug.cgi?id=479661

4 months agoDon't leave fds created with --log-file, --xml-file or --log-socket open
Mark Wielaard [Sun, 16 Jun 2024 19:23:08 +0000 (21:23 +0200)]
Don't leave fds created with --log-file, --xml-file or --log-socket open

prepare_sink_fd and prepare_sink_socket will create a new file
descriptor for the output sink. finalize_sink_fd then copies the fd
to the safe range, so it doesn't conflict with any application fds.

If we created the original fd ourselves, it was a VgLogTo_File or
VgLogTo_Socket, not VgLogTo_Fd, finalize_sink_fd should close it.

Also close socket when connecting fails in VG_(connect_via_socket).

Add a testcase for --log-file and --xml-file which prints output to
/dev/stderr

https://bugs.kde.org/show_bug.cgi?id=202770
https://bugs.kde.org/show_bug.cgi?id=311655
https://bugs.kde.org/show_bug.cgi?id=488379

Co-authored-by: Alexandra Hájková <ahajkova@redhat.com
4 months agodoc FAQ: add items for common code causes of 'Mismatched' errors
Paul Floyd [Sun, 16 Jun 2024 19:11:33 +0000 (21:11 +0200)]
doc FAQ: add items for common code causes of 'Mismatched' errors

(when there is no fault in the code).

4 months agoBug 487439 - SIGILL in JDK11, JDK17
Paul Floyd [Sun, 16 Jun 2024 07:25:51 +0000 (09:25 +0200)]
Bug 487439 - SIGILL in JDK11, JDK17

4 months agoFreeBSD: mostly filters and suppressions for fdleak tests
Paul Floyd [Sat, 15 Jun 2024 15:09:05 +0000 (17:09 +0200)]
FreeBSD: mostly filters and suppressions for fdleak tests

Also make close_range behave like linux when highfd is UINT_MAX.
We should probably move close_range to generic.

4 months agonone/tests/Makefile.am: EXTRA_DIST add exp-nomain files
Mark Wielaard [Sat, 15 Jun 2024 13:05:29 +0000 (15:05 +0200)]
none/tests/Makefile.am: EXTRA_DIST add exp-nomain files

4 months agoAdd file descriptor suppression tests
Alexandra Hájková [Thu, 23 May 2024 08:39:54 +0000 (04:39 -0400)]
Add file descriptor suppression tests

- none/tests/double_close_range_sup.vgtest
- none/tests/fdleak_cmsg_supp.vgtest
- none/tests/fdleak_creat_sup.vgtest
- none/tests/file_dclose_sup.vgtest

https://bugs.kde.org/show_bug.cgi?id=488441

4 months agoAdd the tests for --track-fds=yes --xml=yes
Alexandra Hájková [Tue, 23 Apr 2024 13:17:03 +0000 (09:17 -0400)]
Add the tests for --track-fds=yes --xml=yes

- none/tests/double_close_range_xml.vgtest
- none/tests/fdleak_cmsg_xml.vgtest
- none/tests/fdleak_creat_xml.vgtest
- none/tests/fdleak_dup_xml.vgtest
- none/tests/fdleak_dup2_xml.vgtest
- none/tests/fdleak_fcntl_xml.vgtest
- none/tests/fdleak_ipv4_xml.vgtest
- none/tests/fdleak_open_xml.vgtest
- none/tests/fdleak_pipe_xml.vgtest
- none/tests/fdleak_socketpair_xml.vgtest
- none/tests/file_dclose_xml.vgtest
- none/tests/socket_close_xml.vgtest

Add a new filter_xml. Note the use of --child-silent-after-fork=yes
usage in two vgtests. Maybe this should be the default for --xml=yes?
Otherwise xml output will be "corrupted" by output from a fork.

https://bugs.kde.org/show_bug.cgi?id=488441

4 months agoImprove none/tests/double_close_range test and filter_fdleak
Alexandra Hájková [Thu, 23 May 2024 08:46:26 +0000 (04:46 -0400)]
Improve none/tests/double_close_range test and filter_fdleak

Adjust none/tests/file_dclose, none/tests/fdleak_ipv4
and socket_close to fit the changes in filter_fdleak.

https://bugs.kde.org/show_bug.cgi?id=488441

This page took 0.106926 seconds and 5 git commands to generate.