]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
8 years agoFix for 377698 - Missing memory check for futex() uaddr arg for FUTEX_WAKE,
Ivo Raisr [Thu, 23 Mar 2017 23:22:21 +0000 (23:22 +0000)] 
Fix for 377698 - Missing memory check for futex() uaddr arg for FUTEX_WAKE,
and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET,
and 2 args for FUTEX_TRYLOCK_PI.
Fixes BZ#377698.
Patch by: diane.meirowitz@oracle.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16285

8 years agoAnnounce fix for bug 377717 in the NEWS
Ivo Raisr [Thu, 23 Mar 2017 22:12:03 +0000 (22:12 +0000)] 
Announce fix for bug 377717 in the NEWS

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16284

8 years agoBug 377717 - Fix massive space leak when reading compressed debuginfo sections.
Julian Seward [Mon, 20 Mar 2017 21:34:02 +0000 (21:34 +0000)] 
Bug 377717 - Fix massive space leak when reading compressed debuginfo sections.

This makes reading of compressed debuginfo usable for very large object files.
It also adds a bunch extra documentation about a tricky invariant in the
compressed debuginfo handling (a recursive cache refill path!) and adds a
whole bunch of assertions.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16279

8 years agoAnd some more follow up for 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION
Philippe Waroquiers [Fri, 17 Mar 2017 18:45:23 +0000 (18:45 +0000)] 
And some more follow up for 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION
causing some addresses to be wrongly marked as addressable

Just in case, do the assert after ARG2 has been truncated to 32 bits,
to avoid comparing sign extended requests on 64 bits.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16278

8 years agoFollow up to fix 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some
Philippe Waroquiers [Fri, 17 Mar 2017 18:38:42 +0000 (18:38 +0000)] 
Follow up to fix 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some
        addresses to be wrongly marked as addressable

As noted by Ivo, if the syscall fails, then we have a leak.

So, enable the flag SfPostOnFail if we allocate memory.
In the POST ioctl, check that FAILURE only happens for this drm ioctl,
and free the memory for both SUCCESS and FAILURE.
Do the POST_MEM_WRITE only if SUCCESS

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16277

8 years agoUpdate the list of fixed issues
Petar Jovanovic [Thu, 16 Mar 2017 15:07:12 +0000 (15:07 +0000)] 
Update the list of fixed issues

The bug 377376 has been fixed with r16273 and r16275.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16276

8 years agoFix broken build on non-Linux systems
Petar Jovanovic [Thu, 16 Mar 2017 13:10:16 +0000 (13:10 +0000)] 
Fix broken build on non-Linux systems

After r16273, non-Linux Valgrind builds report:

 m_signals.c:1732:36:
 error: 'VKI_PT_PTRACED' undeclared (first use in this function)

Fix the issue with #if defined(VGO_linux) for the reported code.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16275

8 years agoFix 376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
Philippe Waroquiers [Wed, 15 Mar 2017 19:35:29 +0000 (19:35 +0000)] 
Fix 376956  syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
        to be wrongly marked as addressable

Patch from Daniel Glöckner, slightly modified.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16274

8 years agoAdd support for syscall ptrace(traceme)
Petar Jovanovic [Wed, 15 Mar 2017 15:23:27 +0000 (15:23 +0000)] 
Add support for syscall ptrace(traceme)

It fixes Bug 377376.

Patch by Aleksandra Karadzic.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16273

8 years agoUpdate the list of fixed bugs
Petar Jovanovic [Tue, 14 Mar 2017 17:11:51 +0000 (17:11 +0000)] 
Update the list of fixed bugs

The following issues have been fixed:

341481 MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms
(VEX r3304)

344524 store conditional of guest applications always fail - observed
on Octeon3(MIPS)
(Valgrind r16269, VEX r3316)

376142 Segfaults on MIPS Cavium Octeon boards
(Valgrind r16261)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16272

8 years agoThere is a typo in the configure.ac file that causes the HAS_ISA_3_00
Carl Love [Mon, 13 Mar 2017 20:14:08 +0000 (20:14 +0000)] 
There is a typo in the configure.ac file that causes the HAS_ISA_3_00
variable to not be set.

The mask64 value, in file VEX/priv/guest_ppc_toIR.c is missing the
HWCAPS bit for ISA3.0.

vex commit 3317.

bugzilla 377478

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16270

8 years agomips: improve emulation of LL/SC
Petar Jovanovic [Mon, 13 Mar 2017 17:55:07 +0000 (17:55 +0000)] 
mips: improve emulation of LL/SC

Follow up to VEX r3316.

Related issue KDE #344524.

Patch by Maran Pakkirisamy.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16269

8 years agoAdd missing break for the DRM ioctl operations that do not have any args
Philippe Waroquiers [Sat, 11 Mar 2017 21:07:21 +0000 (21:07 +0000)] 
Add missing break for the DRM ioctl operations that do not have any args
Due to this missing break, the code was falling through to
the case VKI_SNDRV_CTL_IOCTL_PVERSION:
and was then setting some bytes as defined at (whatever address is in) ARG3.

Patch and analysis by Daniel Glöckner

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16266

8 years agoPowerPC: Fix incorrect register pair check for lxv, stxv, stxsd, stxssp, lxsd,
Carl Love [Fri, 10 Mar 2017 20:10:49 +0000 (20:10 +0000)] 
PowerPC:  Fix incorrect register pair check for lxv, stxv, stxsd, stxssp, lxsd,
lxssp instructions

The lfdpx, stdpx, lfdp and stfdp instructions work on a register pair.  The
register pair test must only be applied to these instructions in the
dis_fp_pair() function.

Updating NEWS file for the commit

VEX commit 3308  makes the fix in VEX/priv/guest_ppc_toIR.c

bugzilla 377427

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16262

8 years agomips: do not unmap vDSO
Petar Jovanovic [Wed, 8 Mar 2017 16:30:19 +0000 (16:30 +0000)] 
mips: do not unmap vDSO

vDSO cannot be unmaped for mips architecture because there is no
support for custom signal restorer since kernel 2.5.

It should fix KDE Bug #376142.

Patch by Tamara Vlahovic.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16261

8 years agoFinished importing new bugs and made a first pass through all of them.
Julian Seward [Mon, 6 Mar 2017 20:04:24 +0000 (20:04 +0000)] 
Finished importing new bugs and made a first pass through all of them.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16260

8 years agoUpdate. Slowly working through huge bug backlog.
Julian Seward [Mon, 6 Mar 2017 14:50:38 +0000 (14:50 +0000)] 
Update.  Slowly working through huge bug backlog.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16259

8 years agoFix two safe_to_deref/sizeof mismatches in sys_sigaction/sys_rt_sigaction.
Mark Wielaard [Thu, 2 Mar 2017 11:14:36 +0000 (11:14 +0000)] 
Fix two safe_to_deref/sizeof mismatches in sys_sigaction/sys_rt_sigaction.

Before dereferencing the sigaction pointer and reading the fields we
need to make sure the whole struct is safe_to_deref. We were using the
size of the pointer, but needed the size of the struct.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16258

8 years agoUpdate.
Julian Seward [Wed, 1 Mar 2017 14:28:38 +0000 (14:28 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16257

8 years agoIntroduce macro ASSUME_ALIGNED and use it in vki-linux.h.
Ivo Raisr [Sun, 26 Feb 2017 21:37:04 +0000 (21:37 +0000)] 
Introduce macro ASSUME_ALIGNED and use it in vki-linux.h.
Reduces the number of compiler warnings on MIPS platforms.
Partial fix for BZ#370028.
Patch by: Aleksandar Rikalo <aleksandar.rikalo@imgtec.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16256

8 years agoFollow up to SVN r16253 (fix expected output of gdbserver_tests/solaris/nlcontrolc)
Ivo Raisr [Fri, 24 Feb 2017 08:32:59 +0000 (08:32 +0000)] 
Follow up to SVN r16253 (fix expected output of gdbserver_tests/solaris/nlcontrolc)
SVN r16253 (follow up to r16251) was not complete.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16255

8 years agoPatch submitted by Will Schmidt for PPC64.
Carl Love [Mon, 20 Feb 2017 19:04:13 +0000 (19:04 +0000)] 
Patch submitted by Will Schmidt for PPC64.

On ppc64*, the TOC ptr should not be considered a scratch
register, and should not be in the clobber list.
This is called out in newer GCC (i.e. gcc7) and triggers an error.

Thusly, remove R2 from the clobber list.

Signed-Off-By: Will Schmidt <will_schmidt@vnet.ibm.com>
Tested and committed by: Carl Love <cel@us.ibm.com>

Bugzilla is 376729.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16254

8 years agoFollow up to SVN r16251
Ivo Raisr [Mon, 20 Feb 2017 15:02:31 +0000 (15:02 +0000)] 
Follow up to SVN r16251
Fix expected output for gdbserver_tests/solaris/nlcontrolc.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16253

8 years agoFix sr_EQ() comparison on Solaris syscall failure
Ivo Raisr [Mon, 20 Feb 2017 08:07:21 +0000 (08:07 +0000)] 
Fix sr_EQ() comparison on Solaris syscall failure
On rare occasions, garbage is found in sr1._val2
while sr2._val2 contains 0.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16252

8 years agomodifty sleepers to have easier evaluation of interaction between cpu freq scaling
Philippe Waroquiers [Sun, 19 Feb 2017 11:23:46 +0000 (11:23 +0000)] 
modifty sleepers to have easier evaluation of interaction between cpu freq scaling
and scheduler lock (pipe based or futex based)

See http://www.valgrind.org/docs/manual/manual-core.html#manual-core.pthreads_perf_sched
for background info about cpu freq scaling and valgrind thread scheduler.

To reproduce the interaction, do:
for sched in --fair-sched=yes --fair-sched=no
do
  for affinity in 0 1
  do
    echo $sched $affinity
    time ./vg-in-place $sched -q ./gdbserver_tests/sleepers 1000000 0 1000 B-B-B-B- $affinity
  done
done

which gives the below output (intel core i5-6402P, debian 8, kernel  3.16.0).
In summary: the fair scheduler is fair, the pipe based scheduler
can be really unfair (e.g. with --fair-sched=no and no affinity,
2 threads are finishing their work, while the 2 other threads are
starting their work only after the first 2 have fully finished).
The difference in timing is significant : 1m14s versus around 47 seconds.

  Note: If the governor is set to performance, strangely, the time needed for
  --fair-sched=no increases slighltly (to around 48 seconds).
  The time for --fair-sched=yes with or without affinity is then also
  to around 48 seconds.

Below is timing with on-demand governor:

--fair-sched=yes 0
loops/sleep_ms/burn/threads_spec/affinity:  1000000 0 1000 B-B-B-B- 0
Brussels ready to sleep and/or burn
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
Brussels finished to sleep and/or burn
London finished to sleep and/or burn
Petaouchnok finished to sleep and/or burn
main finished to sleep and/or burn

real 1m14.582s
user 1m14.348s
sys 0m0.204s
--fair-sched=yes 1
loops/sleep_ms/burn/threads_spec/affinity:  1000000 0 1000 B-B-B-B- 1
Brussels ready to sleep and/or burn
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
main finished to sleep and/or burn
Brussels finished to sleep and/or burn
Petaouchnok finished to sleep and/or burn
London finished to sleep and/or burn

real 0m46.785s
user 0m46.756s
sys 0m0.032s
--fair-sched=no 0
loops/sleep_ms/burn/threads_spec/affinity:  1000000 0 1000 B-B-B-B- 0
Brussels ready to sleep and/or burn
Brussels finished to sleep and/or burn
London ready to sleep and/or burn
London finished to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
Petaouchnok finished to sleep and/or burn
main finished to sleep and/or burn

real 0m47.742s
user 0m48.224s
sys 0m0.084s
--fair-sched=no 1
loops/sleep_ms/burn/threads_spec/affinity:  1000000 0 1000 B-B-B-B- 1
Brussels ready to sleep and/or burn
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
Brussels finished to sleep and/or burn
London finished to sleep and/or burn
main finished to sleep and/or burn
Petaouchnok finished to sleep and/or burn

real 0m46.601s
user 0m46.568s
sys 0m0.036s

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16251

8 years agoUpdate NEWS with bug numbers of recently implemented linux-arm64 syscalls.
Mark Wielaard [Sat, 18 Feb 2017 21:46:38 +0000 (21:46 +0000)] 
Update NEWS with bug numbers of recently implemented linux-arm64 syscalls.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16250

8 years agoRemove arm64 specific (unused) setup_child () and assign_guest_tls ().
Mark Wielaard [Sat, 18 Feb 2017 21:16:05 +0000 (21:16 +0000)] 
Remove arm64 specific (unused) setup_child () and assign_guest_tls ().

valgrind svn r16186 (which fixed bug #342040 and #373192) introduced a
generic linux way of handling setup_child and assign_guest_tls. So there
is no need anymore for arch specific implementations. And gcc complained
they were unused.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16249

8 years agoaarch64: mark not implemented syscalls as such
Mark Wielaard [Sat, 18 Feb 2017 21:16:04 +0000 (21:16 +0000)] 
aarch64: mark not implemented syscalls as such

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16248

8 years agoaarch64: enable sethostname syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:04 +0000 (21:16 +0000)] 
aarch64: enable sethostname syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16247

8 years agoaarch64: enable getcpu syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:03 +0000 (21:16 +0000)] 
aarch64: enable getcpu syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16246

8 years agoaarch64: enable kcmp syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:02 +0000 (21:16 +0000)] 
aarch64: enable kcmp syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16245

8 years agoaarch64: enable clock_adjtime syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:01 +0000 (21:16 +0000)] 
aarch64: enable clock_adjtime syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16244

8 years agoaarch64: enable fanotify_mark syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:00 +0000 (21:16 +0000)] 
aarch64: enable fanotify_mark syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16243

8 years agoaarch64: enable fanotify_init syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:16:00 +0000 (21:16 +0000)] 
aarch64: enable fanotify_init syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16242

8 years agoaarch64: enable rt_tgsigqueueinfo syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:59 +0000 (21:15 +0000)] 
aarch64: enable rt_tgsigqueueinfo syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16241

8 years agoaarch64: enable move_pages syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:58 +0000 (21:15 +0000)] 
aarch64: enable move_pages syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16240

8 years agoaarch64: enable request_key syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:57 +0000 (21:15 +0000)] 
aarch64: enable request_key syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16239

8 years agoaarch64: enable tkill syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:56 +0000 (21:15 +0000)] 
aarch64: enable tkill syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16238

8 years agoaarch64: enable sched_rr_get_interval syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:55 +0000 (21:15 +0000)] 
aarch64: enable sched_rr_get_interval syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16237

8 years agoaarch64: enable delete_module syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:54 +0000 (21:15 +0000)] 
aarch64: enable delete_module syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16236

8 years agoaarch64: enable get_robust_list syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:53 +0000 (21:15 +0000)] 
aarch64: enable get_robust_list syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16235

8 years agoaarch64: enable unshare syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:53 +0000 (21:15 +0000)] 
aarch64: enable unshare syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16234

8 years agoaarch64: enable sync_file_range syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:52 +0000 (21:15 +0000)] 
aarch64: enable sync_file_range syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16233

8 years agoaarch64: enable pivot_root syscall (generic wrapper)
Mark Wielaard [Sat, 18 Feb 2017 21:15:51 +0000 (21:15 +0000)] 
aarch64: enable pivot_root syscall (generic wrapper)

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16232

8 years agoaarch64: remove bogus syscall part
Mark Wielaard [Sat, 18 Feb 2017 21:15:50 +0000 (21:15 +0000)] 
aarch64: remove bogus syscall part

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16231

8 years agoaarch64: add missing syscalls into table
Mark Wielaard [Sat, 18 Feb 2017 21:15:49 +0000 (21:15 +0000)] 
aarch64: add missing syscalls into table

All entries are added disabled - enabling them will be done later.

Patch by Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16230

8 years agofix order of timer_* syscalls on aarch64 - bug #371225
Mark Wielaard [Sat, 18 Feb 2017 21:15:48 +0000 (21:15 +0000)] 
fix order of timer_* syscalls on aarch64 - bug #371225

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16229

8 years agoBug 376611 - ppc64 and arm64 don't know about prlimit64 syscall.
Mark Wielaard [Sat, 18 Feb 2017 13:20:16 +0000 (13:20 +0000)] 
Bug 376611 - ppc64 and arm64 don't know about prlimit64 syscall.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16228

8 years agoSolaris: Add syscall wrapper for fast trap getlgrp(6)
Ivo Raisr [Thu, 16 Feb 2017 18:29:46 +0000 (18:29 +0000)] 
Solaris: Add syscall wrapper for fast trap getlgrp(6)
Fixes BZ#376518.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16227

8 years agoSolaris: include <sys/lgrp_user_impl.h> only on newer Solaris.
Ivo Raisr [Wed, 15 Feb 2017 15:22:05 +0000 (15:22 +0000)] 
Solaris: include <sys/lgrp_user_impl.h> only on newer Solaris.
Follow up to SVN r16224 and r16225, BZ#376455.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16226

8 years agoSolaris: Add additional subcodes for lgrpsys(180) syscall
Ivo Raisr [Tue, 14 Feb 2017 12:38:06 +0000 (12:38 +0000)] 
Solaris: Add additional subcodes for lgrpsys(180) syscall
Fixes BZ#376455.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16225

8 years agoSolaris: Add syscall wrapper for lgrpsys(180)
Ivo Raisr [Tue, 14 Feb 2017 10:35:20 +0000 (10:35 +0000)] 
Solaris: Add syscall wrapper for lgrpsys(180)
Fixes BZ#376455.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16224

8 years agoadd none/tests/linux/clonev to svn:ignore list
Petar Jovanovic [Mon, 13 Feb 2017 18:06:10 +0000 (18:06 +0000)] 
add none/tests/linux/clonev to svn:ignore list

add clonev to the svn:ignore list, for the sake of tidiness.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16223

8 years agoDocument BZ#376279
Tom Hughes [Sat, 11 Feb 2017 10:46:02 +0000 (10:46 +0000)] 
Document BZ#376279

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16222

8 years agoam_munmap_both_wrk: safely initialise out-param for all return paths.
Julian Seward [Wed, 8 Feb 2017 08:27:34 +0000 (08:27 +0000)] 
am_munmap_both_wrk: safely initialise out-param for all return paths.
Silences what I think is a false complaint from gcc at -O3.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16221

8 years agofix leak-segv-jmp test for platforms with 64K pagesize
Petar Jovanovic [Fri, 3 Feb 2017 01:19:55 +0000 (01:19 +0000)] 
fix leak-segv-jmp test for platforms with 64K pagesize

Increase the size of allocated array, so mprotect call does not end up
protecting non-allocated areas. This enables the test to work on
platforms with pagesize=64K.

Issue discovered on MIPS XLP machine with 64K pagesize.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16220

8 years agoadd suppression for helgrind/tests/tc22_exit_w_lock
Petar Jovanovic [Fri, 3 Feb 2017 00:34:52 +0000 (00:34 +0000)] 
add suppression for helgrind/tests/tc22_exit_w_lock

Function pthread_create indirectly calls function memcpy. Helgrind
considers that memcpy is not thread safe function. For error reported
from pthread_create there is the suppression helgrind---_dl_allocate_tls
in the file glibc-2.34567-NPTL-helgrind.supp.
Since glibc version 2.23, memcpy is implemented by __mempcpy_inline.
This causes that call to memcpy from pthread_create is no longer
recognized by the suppression.
In test helgrind/tests/tc22_exit_w_lock, pthread_create is called twice,
and second call reports error, which causes failing of the test.
This patch adds suppression for glibc 2.23 and greater.

Patch by Tamara Vlahovic.

Related issue #375806.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16219

8 years agoAdd PROT_READ flag to mmap, as Valgrind needs to be able to read the
Petar Jovanovic [Thu, 2 Feb 2017 17:24:14 +0000 (17:24 +0000)] 
Add PROT_READ flag to mmap, as Valgrind needs to be able to read the
code before it executes it.

This fixes none/tests/bigcode on some MIPS platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16218

8 years agoforce old implementation of std::string for leak_cpp_interior test
Petar Jovanovic [Tue, 31 Jan 2017 18:22:20 +0000 (18:22 +0000)] 
force old implementation of std::string for leak_cpp_interior test

This patch forces leak_cpp_interior to be compiled using old implementation
of std::string.

Related issue #373069

Patch by Aleksandar Rikalo.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16217

8 years agoFix +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_...
Ivo Raisr [Tue, 31 Jan 2017 12:33:54 +0000 (12:33 +0000)] 
Fix +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_(find_rx_mapping)()
Fixes BZ#375772

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16216

8 years agomips: implement calculation for static TLS
Petar Jovanovic [Mon, 30 Jan 2017 19:33:47 +0000 (19:33 +0000)] 
mips: implement calculation for static TLS

Extend valgrind_get_tls_addr() with static TLS calculation for MIPS.

Related issue #375514.

Patch by Aleksandar Rikalo.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16215

8 years agoSamll changes on xtree leak event short names
Philippe Waroquiers [Sun, 29 Jan 2017 16:11:19 +0000 (16:11 +0000)] 
Samll changes on xtree leak event short names

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16214

8 years agoAdding new filter to memcheck/tests/filter_stderr
Petar Jovanovic [Fri, 27 Jan 2017 18:20:50 +0000 (18:20 +0000)] 
Adding new filter to memcheck/tests/filter_stderr

This should fix issue with sendmsg test and glibc 2.22.

Glibc 2.22 introduced sysdeps/unix/sysv/linux/sendmsg.c that has
__libc_sendmsg function implementation (in comparison to earlier
implementation in syscall-template.S).
So, test suite needs to filter out this case, otherwise we get test
diffs such as:

 Syscall param sendmsg(msg) points to uninitialised byte(s)
-   at 0x........: sendmsg (in /...libc...)
+   at 0x........: sendmsg (sendmsg.c:28)

which are false positives.

This fixes memcheck/tests/sendmsg (stderr) on platforms with 2.22+ glibc.

Patch by Aleksandra Karadzic.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16213

8 years agomips: fix target_get_drv() function
Petar Jovanovic [Fri, 27 Jan 2017 17:55:13 +0000 (17:55 +0000)] 
mips: fix target_get_drv() function

Return correct Dtv location. Top of MIPS tcbhead structure is located
0x7000 bytes before the value of ULR. Dtv is the first of two pointers
in the tcbhead structure.

This fixes gdbserver_tests/hgtls on some MIPS platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16212

8 years agomips32: add support for ptrace syscall
Petar Jovanovic [Fri, 27 Jan 2017 17:01:49 +0000 (17:01 +0000)] 
mips32: add support for ptrace syscall

Add wrapers for ptrace syscall for mips32.

Patch by Aleksandra Karadzic.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16211

8 years agoDocument limitation of --log-file when a program forks.
Ivo Raisr [Wed, 25 Jan 2017 07:22:18 +0000 (07:22 +0000)] 
Document limitation of --log-file when a program forks.
Follow up to r16200 and BZ#162848.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16210

8 years agoxtree: use "UnknownFile???" and "UnknownFn???" instead of "???"
Philippe Waroquiers [Sat, 21 Jan 2017 19:24:33 +0000 (19:24 +0000)] 
xtree: use  "UnknownFile???" and "UnknownFn???" instead of "???"
and "file ???"

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16209

8 years agoSimilar to xtree memory, give a user msg with the xtree leak filename
Philippe Waroquiers [Sat, 21 Jan 2017 15:46:44 +0000 (15:46 +0000)] 
Similar to xtree memory, give a user msg with the xtree leak filename

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16208

8 years agoFix --help for --xtree-leak-file
Philippe Waroquiers [Sat, 21 Jan 2017 13:22:06 +0000 (13:22 +0000)] 
Fix --help for --xtree-leak-file

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16207

8 years agoxtree leak.
Philippe Waroquiers [Sat, 21 Jan 2017 12:20:33 +0000 (12:20 +0000)] 
xtree leak.
As option --xtree-leak=yes is useless without a full leak report,
sets automatically full leak report if xtree leak report is requested.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16206

8 years agoAllow memcheck to output the leak results as a callgrind xtree file.
Philippe Waroquiers [Sat, 21 Jan 2017 11:00:39 +0000 (11:00 +0000)] 
Allow memcheck to output the leak results as a callgrind xtree file.

* New command line options --xtree-leak=no|yes and --xtree-leak-file=<file>
  to produce the end of execution leak report in a xtree callgrind format
  file.

* New option 'xtleak' in the memcheck leak_check monitor command, to
  produce the leak report in an xtree file.

* File name template arguments (such as --log-file, --xtree-memory-file, ...)
  have a new %n format letter that is replaced by a sequence number.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16205

8 years agox86-linux: Initialize x86 system GDT on first use. Bug 344139 comment 3.
Julian Seward [Fri, 20 Jan 2017 09:58:15 +0000 (09:58 +0000)] 
x86-linux: Initialize x86 system GDT on first use.  Bug 344139 comment 3.
Patch from Sebastian Lackner, sebastian@fds-team.de.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16204

8 years agoConnect the v8 FP and SIMD tests to the build system.
Julian Seward [Thu, 19 Jan 2017 06:53:13 +0000 (06:53 +0000)] 
Connect the v8 FP and SIMD tests to the build system.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16203

8 years agoAdd support for Iop_MaxNumF64, Iop_MinNumF64, Iop_MaxNumF32 and
Julian Seward [Fri, 13 Jan 2017 18:02:38 +0000 (18:02 +0000)] 
Add support for Iop_MaxNumF64, Iop_MinNumF64, Iop_MaxNumF32 and
Iop_MinNumF32, as introduced in vex r3293.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16202

8 years agomips64: update exp file for test_math
Petar Jovanovic [Fri, 13 Jan 2017 16:29:15 +0000 (16:29 +0000)] 
mips64: update exp file for test_math

Leave the old exp file that covers cases in which __addtf3 and __subtf3
did not take into account rounding modes. New exp file is the same file
that already exists in mips32 folder, so we just create a symbolic link
to it.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16201

8 years agoFix a bug when --log-file output isn't split when a program forks.
Ivo Raisr [Thu, 12 Jan 2017 11:28:20 +0000 (11:28 +0000)] 
Fix a bug when --log-file output isn't split when a program forks.
Patch loosely based on idea by Timur Iskhodzhanov <timurrrr@google.com>.
Fixes BZ#162848

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16200

8 years agoDo not capture the free stacktrace in memcheck, unless we have
Philippe Waroquiers [Wed, 11 Jan 2017 22:13:52 +0000 (22:13 +0000)] 
Do not capture the free stacktrace in memcheck, unless we have
either to keep the free stacktrace and/or to compute full xtree memory.

Also, properly compute avg nr of IP per execontext: the avg must
be computed using the real nr of execontext stored, not the hash
table size.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16199

8 years agoMake this compile for both ARM and Thumb encodings,
Julian Seward [Wed, 11 Jan 2017 21:49:40 +0000 (21:49 +0000)] 
Make this compile for both ARM and Thumb encodings,
and make it produce identical results for both encodings.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16198

8 years agoFix comments in m_trampoline.S for amd64/Solaris redirs.
Ivo Raisr [Wed, 11 Jan 2017 21:17:42 +0000 (21:17 +0000)] 
Fix comments in m_trampoline.S for amd64/Solaris redirs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16197

8 years agoAdd a format marker to callgrind files
Josef Weidendorfer [Tue, 10 Jan 2017 20:21:21 +0000 (20:21 +0000)] 
Add a format marker to callgrind files

KCachegrind currently uses a quick format detection before
actually loading a file, and checks for a line starting with
"events:" in the first 2kB for that. This obviously is fragile,
as shown by an internal bug report by Philippe: before the
"events" line, Callgrind puts a "cmd:" line with the command
line. If this is very long, the detection fails and the file
does not get loaded at all.

While KCachegrind would not need to have this quick format
check at all, it is useful if multiple input format filters
get supported at some point, to automatically select the
correct filter.

Further, for the "file" command, for file managers and
desktop environments, having an unique way to detect a
file format is important.

It is not too late to fix this issue for the callgrind format.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16196

8 years agoxtree: CALLED_FLF must be called only up to ips[0] + minor doc update
Philippe Waroquiers [Tue, 10 Jan 2017 18:07:07 +0000 (18:07 +0000)] 
xtree: CALLED_FLF must be called only up to ips[0] + minor doc update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16195

8 years agoAdd test cases for 32-bit v8 FP and SIMD insns.
Julian Seward [Tue, 10 Jan 2017 16:09:53 +0000 (16:09 +0000)] 
Add test cases for 32-bit v8 FP and SIMD insns.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16194

8 years agoxtree: minor updates to documentation, comments and indentation, no functional change.
Philippe Waroquiers [Fri, 6 Jan 2017 18:38:27 +0000 (18:38 +0000)] 
xtree: minor updates to documentation, comments and indentation, no functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16193

8 years agoAdd Solaris specific notes on running regression tests
Ivo Raisr [Tue, 3 Jan 2017 22:03:43 +0000 (22:03 +0000)] 
Add Solaris specific notes on running regression tests
Reported by: Paul Floyd <paulf@free.fr>
n-i-bz

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16192

8 years agoUpdate NEWS for recent VEX commit r3288.
Ivo Raisr [Fri, 23 Dec 2016 12:40:33 +0000 (12:40 +0000)] 
Update NEWS for recent VEX commit r3288.
Fixes BZ#373938.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16191

8 years agomips: fix "cast-equal" warnings in coredump-elf.c
Petar Jovanovic [Wed, 21 Dec 2016 17:45:28 +0000 (17:45 +0000)] 
mips: fix "cast-equal" warnings in coredump-elf.c

Remove the following warnings from the build:
m_coredump/coredump-elf.c:521:31: warning: cast discards 'const'
qualifier from pointer target type [-Wcast-qual]

Related BZ#370028

Patch by Aleksandar Rikalo.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16190

8 years agoRename BBPTR to GSPTR as it denotes guest state pointer only
Ivo Raisr [Fri, 16 Dec 2016 21:21:05 +0000 (21:21 +0000)] 
Rename BBPTR to GSPTR as it denotes guest state pointer only
Fixes BZ#373555.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16189

8 years agomips: remove some old cruft from clone functions
Petar Jovanovic [Fri, 16 Dec 2016 18:31:57 +0000 (18:31 +0000)] 
mips: remove some old cruft from clone functions

Follow up to r16186 when this cruft was noticed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16188

8 years agoAdd missing EXTRA_DIST clonev.stdout.exp
Philippe Waroquiers [Sun, 11 Dec 2016 22:18:07 +0000 (22:18 +0000)] 
Add missing EXTRA_DIST clonev.stdout.exp

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16187

8 years agoFix 342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones to a...
Philippe Waroquiers [Sun, 11 Dec 2016 21:39:23 +0000 (21:39 +0000)] 
Fix 342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones to a different stack
Fix 373192 Calling posix_spawn in glibc 2.24 completely broken

Functionally, this patch just does the following 2 changes to the
fork clone handling:
* It does not mask anymore CLONE_VFORK :
  The only effect of this flag is to suspend the parent, waiting for
  the child to either exit or execve.
  If some applications depends on this synchronisation, better keep it,
  as it will not harm to suspend the parent valgrind waiting for the
  child valgrind to exit or execve.
* In case the guest calls the clone syscall providing a non zero client stack,
  set the child guest SP after the syscall, before executing guest instructions.
  Not setting the guest stack ptr was the source of the problem reported
  in the bugs.

This also adds a test case  none/tests/linux/clonev.
Before this patch, test gives a SEGV, which is fixed by the patch.

The patch is however a lot bigger : this fix was touching some (mostly
identical/duplicated) code in all the linux platforms.
So, the clone/fork code has been factorised as much as possible.
This removes about 1700 lines of code.

This has been tested on:
* amd64
* x86
* ppc64 be and le
* ppc32
* arm64

This has been compiled on but *not really tested* on:
* mips64 (not too clear how to properly build and run valgrind on gcc22)

It has *not* been compiled and *not* tested on:
* arm
* mips32
* tilegx
* darwin   (normally, no impact)
* solaris  (normally, no impact)

The changes are relatively mechanical, so it is not impossible that
it will compile and work out of the box on these platforms.
Otherwise, questions welcome.

A few points of interest:
* Some platforms did have a typedef void vki_modify_ldt_t,
  and some platforms had no definition for this type at all.
  To make it easier to factorise, for such platforms, the following has
  been used:
     typedef char vki_modify_ldt_t;
    When the sizeof vki_modify_ldt_t is > 1, then the arg syscall is checked.
  This is somewhat a hack, but was simplifying the factorisation.

* for mips32/mips64 and tilegx, there is a strange unconditional assignment
  of 0 to a register (guest_r2 on mips, guest_r0 on tilegx).
  Unclear what this is, in particular because this is assigned whatever
  the result of the syscall (success or not).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16186

8 years agoAdd placeholders for all new OS X 10.11 syscalls. Related to bz#348909.
Rhys Kidd [Sun, 11 Dec 2016 08:07:21 +0000 (08:07 +0000)] 
Add placeholders for all new OS X 10.11 syscalls. Related to bz#348909.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16185

8 years agoAdd placeholders for all new macOS 10.12 syscalls. Related to bz#365327.
Rhys Kidd [Sun, 11 Dec 2016 07:17:43 +0000 (07:17 +0000)] 
Add placeholders for all new macOS 10.12 syscalls. Related to bz#365327.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16184

8 years agomips64: add cvm_atomic.stdout.exp-BE
Petar Jovanovic [Sat, 10 Dec 2016 00:29:58 +0000 (00:29 +0000)] 
mips64: add cvm_atomic.stdout.exp-BE

Add BE variant of exp file for cvm_atomic test.
This fixes none/tests/mips64/cvm_atomic for Cavium MIPS64 BE systems.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16183

8 years agomips32: minor style change to r16181
Petar Jovanovic [Fri, 9 Dec 2016 18:51:58 +0000 (18:51 +0000)] 
mips32: minor style change to r16181

Divide one line into two lines that fit "80 columns" rule.
Non-functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16182

8 years agomips32: allow execution of round_fpu64 test for fpxx
Petar Jovanovic [Fri, 9 Dec 2016 18:35:37 +0000 (18:35 +0000)] 
mips32: allow execution of round_fpu64 test for fpxx

Allow execution of none/tests/mips32/round_fpu64 test if it is built with
-mfpxx. It gets us more coverage eventually.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16181

8 years agomips: fix VG_(gdbserver_report_signal) arguments
Petar Jovanovic [Thu, 8 Dec 2016 14:52:02 +0000 (14:52 +0000)] 
mips: fix VG_(gdbserver_report_signal) arguments

When definition of VG_(gdbserver_report_signal) was changed in r15248,
the function VG_(synth_sigfpe) was omitted from the update.

This change fixes:

gdbserver_tests/mcsignopass              (stderr)
gdbserver_tests/mcsignopass              (stdoutB)
gdbserver_tests/mcsigpass                (stderr)
gdbserver_tests/mcsigpass                (stdoutB)

on MIPS platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16180

8 years agoUpdate memcheck/tests/amd64-linux ignore list
Petar Jovanovic [Tue, 6 Dec 2016 14:07:30 +0000 (14:07 +0000)] 
Update memcheck/tests/amd64-linux ignore list

Add access_below_sp file to the ignore list.
Non-functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16179

8 years agomips: add fadvise64 to svn ignore list
Petar Jovanovic [Tue, 6 Dec 2016 13:47:33 +0000 (13:47 +0000)] 
mips: add fadvise64 to svn ignore list

More housekeeping after r16175.
Add fadvise64 executable to the ignore list.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16178

8 years agoAdjust line number in mcblocklistsearch.stderrB.exp.
Mark Wielaard [Tue, 6 Dec 2016 09:50:47 +0000 (09:50 +0000)] 
Adjust line number in mcblocklistsearch.stderrB.exp.

valgrind svn r16173 "Add CLEAR_CALLER_SAVED_REGS in leak-tree test"
added one extra line to memcheck/tests/leak-tree.c which is used in
gdbserver_tests/mcblocklistsearch.vgtest. Adjust the line numbers in
the exp file to match.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16177

8 years agoSome housekeeping related to recent r16175.
Ivo Raisr [Tue, 6 Dec 2016 08:47:30 +0000 (08:47 +0000)] 
Some housekeeping related to recent r16175.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16176