Commit Graph

3159 Commits

Author SHA1 Message Date
Dirk Mueller
706dd9fa67 ignore .valgrindrc files that are world writeable
or not owned by the current user (CVE-2008-4865)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8798
2008-11-22 12:03:19 +00:00
Julian Seward
96b2ce64c0 Helgrind's event-map garbage collector hammers VG_(OSetGen_Next).
Import an optimisation from the analogous function in m_wordfm.c.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8795
2008-11-20 23:33:05 +00:00
Julian Seward
69fcffda22 Expand filename for coredumps correctly. Fixes #174908. Also take
the opportunity to remove some sprintf-ing into a fixed-sized buffer.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8774
2008-11-17 12:45:58 +00:00
Julian Seward
08069a1f9a Don't let GDB_PATH be "" if no GDB is found at configure time, as this causes
any attempts to attach a gdb to the process to fail in a confusing way.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8772
2008-11-17 00:20:45 +00:00
Julian Seward
2ebd38040f Handle sys_lookup_dcookie on amd64-linux (Andrew Haley). Also take
the opportunity to move the handlers from syswrap-generic.c (which
they certainly aren't) to syswrap-linux.c.  Fixes #175044.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8769
2008-11-16 21:40:54 +00:00
Julian Seward
24917a1daa Add performance comments to VG_(sizeFM), and add new method
VG_(isEmptyFM), currently commented out.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8765
2008-11-13 13:17:06 +00:00
Julian Seward
70e5fbdf04 Fix debug printing of fd in mmap system calls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8764
2008-11-13 13:14:00 +00:00
Julian Seward
cf588ba40d When trying to establish whether or not debuginfo should be read from
a file, first the mapping permissions _before_ peering at the file's
header, rather than afterwards.  This changes the logic to behave more
like it does in 3.3.x.  Fixes #164669, although really it is all still
rather fragile.  The bug report,
http://bugs.kde.org/show_bug.cgi?id=164669, contains a detailed
explanation.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8747
2008-11-08 15:22:19 +00:00
Julian Seward
2a5db7f788 Support sys_stime on x86-linux. Fixes #159285.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8736
2008-11-06 23:11:42 +00:00
Julian Seward
e3cccbaf9a Fix integer-pointer comparisons in new spu_ wrappers.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8735
2008-11-06 09:22:50 +00:00
Julian Seward
3a2fbbfafd Add ioctl wrappers for Linux wireless extensions version 22.
Patch from Gwenael Lambrouin.  Fixes #159452.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8734
2008-11-05 16:59:55 +00:00
Julian Seward
af77aae9cd Support sys_spu_run and sys_spu_create on ppc32-linux. Patch by
Kenneth Skovhede.  Fixes #167288.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8731
2008-11-05 11:36:59 +00:00
Julian Seward
f4bffe6909 Support sys_pipe2 on {amd64,x86}-linux. Also, update syscall numbers
for all supported Linuxes to those in linux-2.6.28-rc3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8730
2008-11-05 11:20:59 +00:00
Julian Seward
217f01f3e2 * add some assertions to frame-level wildcarding mechanism
* remove a couple of tabs

* clarify related documentation a bit



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8727
2008-11-04 11:29:19 +00:00
Julian Seward
53ed6e0dd5 Improvements to the suppression mechanism:
* Allow frame-level wildcarding in suppressions.  Based on a patch by
  Akos PASZTORY.  Fixes #151612.  With this change, a line "..." in a
  suppression stacktrace matches any number of frames, including zero.

* Show line numbers in syntax errors when parsing supp files.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8725
2008-11-03 23:10:25 +00:00
Julian Seward
b9a0667306 Fixes for compilation warnings from the apparently very strict
gcc-4.3.2 shipped with Ubuntu 8.10.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8723
2008-11-01 23:55:32 +00:00
Julian Seward
07ac95b348 Get rid of longstanding and now pointless restriction that disallowed
using --db-attach=yes and --trace-children=yes together.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8722
2008-10-30 13:26:29 +00:00
Julian Seward
1c03211b43 Enable sys_quotactl on amd64-linux. Possible fixes #173177.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8720
2008-10-30 13:12:50 +00:00
Julian Seward
1ee7f51214 Rename some local variables called 'index' to something else, to stop
gcc-3.2.2 complaining they shadow some built-in global declaration of
'index'.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8715
2008-10-27 21:42:36 +00:00
Julian Seward
fc2a1bf7dc Fix #includes in some more libiberty files that seem to have been
forgotten about in r8710.  This should _really_ make the revised
demangler independent of any system installed libiberty.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8714
2008-10-27 09:54:14 +00:00
Julian Seward
d658fbf429 Speed up VG_(am_find_nsegment). This is kind-of required by r8712,
which in turn is a fix for #156404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8713
2008-10-27 01:25:14 +00:00
Julian Seward
57c7455121 Ensure the root thread's stack is suitably mapped before doing a
client syscall.  Believed to fix #156404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8712
2008-10-27 01:23:04 +00:00
Julian Seward
ab002e71db Re-copy r3515 into new demangler: "Deal with apparently non-cfront
compliant new[]/delete[] manglings generated by the Portland Group's
C++ compiler."



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8711
2008-10-26 11:59:03 +00:00
Julian Seward
e9c7a88688 Update the C++ demangler to that from libiberty in the gcc svn trunk,
rev 141363.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8710
2008-10-26 11:53:30 +00:00
Julian Seward
e619a32816 Fix references to undefined labels. Why was ld even prepared to link
this before?



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8709
2008-10-26 11:06:44 +00:00
Julian Seward
35c28b721f Merge Helgrind from branches/YARD into the trunk. Also includes some
minor changes to make stack unwinding on amd64-linux approximately
twice as fast as it was before.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8707
2008-10-25 16:22:41 +00:00
Julian Seward
e2b15887e6 get_Form_contents: handle DW_FORM_block2.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8701
2008-10-23 11:13:05 +00:00
Julian Seward
2db480e222 Tolerate apparently broken Dwarf3 generated by gcc (GCC) 4.4.0
20081017 (experimental): accept DW_TAG_enumerator with only a
DW_AT_name but no DW_AT_const_value.  This is in violation of the
Dwarf3 standard.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8700
2008-10-23 10:54:40 +00:00
Julian Seward
94b473cf2b Read suppression files in 256 byte chunks, not 64 byte chunks.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8698
2008-10-23 10:15:37 +00:00
Julian Seward
fbdd00b6e0 gcc-4.4.0 (snapshot) started complaining about buf.sem_nsems being
uninitialised in get_sem_count().  This makes it quiet.  I am not sure
whether get_sem_count() was correct or not without it (probably was
OK).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8697
2008-10-23 09:46:59 +00:00
Julian Seward
2d9f215985 Don't assert on icc9 generated Dwarf3.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8696
2008-10-22 15:49:59 +00:00
Julian Seward
576dd1920b Make VG_(dup2) compile on AIX.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8693
2008-10-22 00:57:29 +00:00
Julian Seward
36f5dd1e2c Track recent AIX 5.3 updates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8692
2008-10-22 00:56:53 +00:00
Julian Seward
44d2f617a5 Change the default PIE load address from 0x100000 (1MB) to 0x108000,
to keep ppc32-linux happy.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8684
2008-10-20 22:24:31 +00:00
Julian Seward
1eceb4282b Dwarf3 variable & type reader: use 64-bit numbers throughout to
represent the sizes of types, even on 32-bit hosts, where a type with
a size >= 2^32 is, well, if not meaningless, then at least impossible
to instantiate.  This is of course motivated by reality .. on ppc32
SUSE11.0, the debuginfo for glibc-2.8 appears to contain a declaration
amounting to

  char __EH_FRAME_BEGIN__ [4294967296]

Really.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8683
2008-10-20 16:08:55 +00:00
Julian Seward
c50d12960e get_Seg_containing_addr() (in h_main.c): remove naive algorithm that
searches through all live Segs and replace it with one which is O(log
N) in the number of live Segs.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8676
2008-10-18 19:55:31 +00:00
Nicholas Nethercote
0cf8a14c70 - Reinstate the 'atfork' from 2.4.0, which was more powerful, and expose it to
tools.
- Factor out 'execv' from 'system' and expose it to tools.

Partly based on a patch from Robert O'Callahan.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8669
2008-10-13 04:19:15 +00:00
Nicholas Nethercote
cc2603ae7a Patch from Robert O'Callahan:
create and expose 'dup2'


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8667
2008-10-12 19:53:28 +00:00
Nicholas Nethercote
d33b3e0d24 Patch from Robert O'Callahan:
make realloc(NULL, size) behave like malloc(size), and make
  realloc(ptr, 0) behave like free(ptr), as the real libc realloc does.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8666
2008-10-12 19:51:41 +00:00
Julian Seward
6e8238ffc4 m_mallocfree.c: omit the 8 byte per block cost-center field used
for heap profiling, if heap profiling is not selected.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8625
2008-09-19 20:13:39 +00:00
Julian Seward
335992d8fc Merge all remaining changes from branches/PTRCHECK. These are some
relatively minor extensions to m_debuginfo, a major overhaul of
m_debuginfo/readdwarf3.c to get its space usage under control, and
changes throughout the system to enable heap-use profiling.

The majority of the merged changes were committed into
branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and
8161.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621
2008-09-18 18:12:50 +00:00
Bart Van Assche
86ff87c102 Enabled capget and capset system calls for amd64, ppc32 and ppc64.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8554
2008-08-27 17:41:56 +00:00
Julian Seward
244a20c3ed Fix regression on none/tests/faultstatus caused by r8522.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8547
2008-08-25 12:10:14 +00:00
Julian Seward
207c05fd20 Rework storage management in the Dwarf3 type and variable reader, to
try and reduce its space consumption.  This change changes some long
linked lists into XArrays instead.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8540
2008-08-22 23:18:02 +00:00
Julian Seward
6136f591ba Try and bit a bit more space-economical, by increasing the
average loading factor from 0.75 to 0.83, and by being more
careful in VG_(cloneXA).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8539
2008-08-22 23:16:06 +00:00
Julian Seward
4040072a3a Make the absolute bare minimum changes needed to stop the Dwarf3
variable & type reader dying on gcc-4.3.x produced Dwarf3.  This is
done by handling DW_TAG_class_type and treating it the same as
DW_TAG_structure_type.  I don't know if this is really correct or not.

This reader is still grossly inefficient in terms of space use, and
could be majorly improved, by storing information in arrays rather
than in linked lists with (sometimes) more than 5 million elements.
But this will have to wait.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8534
2008-08-20 08:14:07 +00:00
Julian Seward
9d24c252e1 Make VG_(addToXA) and VG_(addBytesToXA) 64-bit clean.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8525
2008-08-19 08:57:49 +00:00
Julian Seward
27b2106884 Move the WordFM (AVL trees of UWord-pairs) implementation from
helgrind/ into the core.  It's just too darn useful to not be in the
core.  There is some overlap in functionality between OSet and WordFM,
but OSet is more space efficient in some circumstances, whereas WordFM
is easier to use and a bit more flexible in some cases.

Also in this new module (m_wordfm) is a type WordBag, build on top of
WordFM.  This provides Multiset of UWords functionality.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8524
2008-08-19 08:38:52 +00:00
Julian Seward
3a6645146d Tidy up VG_(stat) usage in VG_(check_executable). Followup to r8522.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8523
2008-08-19 08:32:03 +00:00
Julian Seward
e5150447d7 Presently, Valgrind (non-client) code that wants to use the stat
family of syscalls is impossible to write in a way that's portable and
correct.  On some targets (eg x86-linux) you need to do sys_stat64 and
receive the results in a 'struct vki_stat64'.  But on other targets
(eg amd64-linux) neither sys_stat64 nor 'struct vki_stat64' exist.

This commit adds a new type, 'struct vg_stat', which contains 64 bit
fields in all the right places, and makes VG_(stat) and VG_(fstat) use
it.  This means callers to the two functions no longer need to worry
about the is-it-64-bit-clean-or-not question, since these routines
reformat the received data into a'struct vg_stat'.  Kind of like what
glibc must have been doing for decades.

This (indirectly) fixes a bug on x86-linux, in which m_debuginfo would
sometimes fail to read debug info, due to VG_(di_notify_mmap) using
VG_(stat) (hence sys_stat) on the file, which failed, and when in fact
it should have used sys_stat64.  Bug reported and tracked down by
Marc-Oliver Straub.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8522
2008-08-19 07:03:04 +00:00