Initial revision
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/PATCHES_APPLIED b/PATCHES_APPLIED
new file mode 100644
index 0000000..888baff
--- /dev/null
+++ b/PATCHES_APPLIED
@@ -0,0 +1,392 @@
+
+(Started this file at 14 Feb 02, 18:18 GMT)
+
+I decided it would be clearest for everybody (including me!) if I make
+a record of patches that I apply. The starting point for all these is
+valgrind-20020214; patches applied to it before that snapshot was
+released are not recorded anywhere.
+
+
+------------------------------ 14 Feb 02 ------------------------------
+
+Michael Matz <matz@kde.org>:
+ this fixes the leak (32bytes/demangled symbol)in cplus-dem.c. It also
+ again localizes the changes to libiberty's cp-demangle.c at the top with
+ some #defines. (It also has some unrelated changes like header guarding
+ and making symbol sets disjoint, these are minor and were needed for the
+ demangle_test program, and are local to the demangler)
+
+ JRS: applied it, but it still seems to leak, running a g++2.96 compiled
+ program, at least (/usr/bin/kedit as installed with RH72).
+ (reenable VG_(show_all_arena_stats)() at vg_demangle.c:63 to see this)
+
+
+Michael Matz <matz@kde.org>
+ here the patch for changing order of restorage of %esp to not trash
+ simulees stack
+
+
+Simon Hausmann <hausmann@kde.org>
+ I attached a patch for the latest vg snapshot to implement better
+ support for shmat. Vg now correct marks the region returned by shmat
+ as read or read-writable (we have to do that blindly as there is no
+ way to figure out if another process initialized the data or not) .
+ Also the patch adds a paranoia check for the buffer passed with
+ shmctl. What's left todo is to make shmdt correctly mark the shm
+ segment as invalid again, but I see no easy way to figure out the
+ shm segment size just from the base address. Anyone? :)
+ Otherwise it'll probably require keeping a copy of the allocated
+ mappings inside vg -- shouldn't be expensive though.
+ [...]
+ Oops, my previous shm patch contained a little bug in that it called
+ must_be_readable/writable for shmctl even when the address was 0
+ (which for example is the case when using IPC_RMID to remove a
+ shared memory segment, which is perfectly valid) . Attached the
+ updated patch that makes valgrinding Qt/Embedded apps possible :)
+
+
+me:
+ Check for accessibility changes for first and last 64k of address
+ space after every system call, so as to catch syscall wrapper
+ bugs as soon as they happen
+
+
+Simon Hausmann <hausmann@kde.org>
+ The socketpair handler checks that the two fds passed must be
+ readable, but I think the check should use must_be_writable instead
+ as the kernel does not read those values but fills them in.
+
+
+Simon Hausmann <hausmann@kde.org>
+ Here's a patch that implements checking of arguments for
+ sendmsg/recvmsg, as part of the socket syscall.
+ [...]
+ Oops, I just realized that the recvmsg wrapper should mark the
+ fields of the received message as readable, as the kernel hopefully
+ initialized them :)
+ [...]
+ Corrected patch attached.
+
+
+Nick Nethercote <njn25@cam.ac.uk>
+ [Implemented pushaw/pushal/popaw/popal]
+
+ They're kind of ugly due to the special treatment of %esp, but there
+ didn't seem to be any elegant way around it. You may object to my
+ heinous magic number use with the registers.
+
+ It seems to work ok, but I'd check it carefully if I were you. In
+ particular, I've only tried it with POPAD. (I think; gcc only accepts
+ 'popa' in assembler files, and according to the Intel docs will probably
+ choose between POPA and POPAD by looking at the D flag of the current
+ code segment's descriptor. I'm guessing this is 32-bits for my little
+ test program.)
+
+
+Dirk Mueller <mueller@kde.org>
+ below a patch for checking if allocations are done correctly in C++
+ applications. it checks if new is free'ed by delete, new [] by delete [],
+ and malloc, calloc, realloc by free().
+
+ It works for me <tm>, not intensively tested yet.
+
+
+Michael Matz <matzmich@cs.tu-berlin.de>
+ [allow specification of length of backtrace, default 8]
+ > > another small patch. it just increases the stacktrace
+ > > length to 8 by default
+ > > (16 with --long-stacktraces=yes). a backtrace of 4 is
+ > > really short for KHTML, which often deeply nests calls.
+ >
+ > Wouldn't it be more usefull, to recognize a --bt-length=<number>
+ > option, instead of only two sizes?
+
+ I.e. I would find the attached patch more usefull, which introduces an
+ --bt-size=<num> option (with docu ;-) ) but removes that long=yes/no
+ option.
+
+ JRS: the final name for the option is --num-callers
+
+
+------------------------------ 15 Feb 02 ------------------------------
+
+me:
+ fix assertion failure in VG_(malloc_aligned) (duh. duh. duh.)
+
+
+Michael Matz <matzmich@cs.tu-berlin.de>
+ [finally fix the last space leak in the demangler]
+ this should now fix the rest of the leaks. The old c++ demangler is
+ really crappy code, therefor it took longer to find the leaks. ;)
+
+
+Simon Hausmann <hausmann@kde.org>
+ Here are two micro patches for vg :)
+
+ The first one fixes what I think is a bug: I think the result param
+ of llseek before the actual syscall should be checked for
+ writability instead of readability.
+
+ The second one is a quick workaround for an assertion in the
+ demangler that I hit quite sometimes (I'm surprised noone else has
+ hit it before, maybe it's gcc3 specific though :) . I'm too lazy to
+ write a full strtol replacement for now ;) , so just returning an
+ error will keep the program running and output the mangled symbol
+ instead.
+
+
+------------------------------ 17 Feb 02 ------------------------------
+
+me:
+ Implement cleverer semantics for 4-byte integer loads from partially
+ valid addresses, following complains from Coolo re spurious warnings
+ from gcc-inlined strlen()s. As part of this, hardwire the default
+ behaviour of --bad-addr-value and get rid of this flag entirely.
+ New flag --partial-loads-ok=no|yes [default yes] controls use of
+ new semantics. Also as a result, stop recommending people use
+ --sloppy-malloc=yes by default.
+
+me:
+ Options are now read from env var VALGRIND_OPTS.
+ Also remove need to edit hardware install dir in shell script.
+
+
+Michael Matz <matzmich@cs.tu-berlin.de>
+Simon Hausmann <hausmann@kde.org>
+ this fixes some leaks in the v3 demangler found by Simon (Julian: i.e.
+ those we couldn't possibly run into, as we use v2 demangling).
+
+
+------------------------------ 18 Feb 02 ------------------------------
+
+me:
+ Tighten up the conditions for which --partial-loads-ok=yes is allowed
+
+me:
+ Error management: slow down collecting errors after the 50th
+ and stop altogether after the 500th
+
+me:
+ Implement --workaround-gcc296-bugs, so RH 7.X and Mandrake users
+ can use their default compilers.
+
+
+------------------------------ 20 Feb 02 ------------------------------
+
+me:
+ Massive overhaul of the signal machinery so that signals can be
+ delivered to the client even when it is blocked in a system call.
+ This fixes the kmail-deadlocks-on-valgrind problem.
+
+------------------------------ 21 Feb 02 ------------------------------
+
+me:
+ Implement GDB attachment to the program.
+
+Stephan Kulow <coolo@kde.org>
+ Implement a few more syscall wrappers
+
+------------------------------ 24 Feb 02 ------------------------------
+
+me:
+ Cleanup of the signal machinery. Now we deal with signals purely
+ at the kernel interface, rather than muddying glibc's and the kernel's
+ conflicting concepts of some of the calls and structures.
+
+Kevin Dwyer <kevin@pheared.net>
+ Implement bazillions of syscall wrappers for ioctls
+
+me:
+ minor cleanups in vg_memory.c
+
+------------------------------ 4 Mar 02 -------------------------------
+
+This file is falling significantly behind reality.
+
+Me: get rid of this pointless and incorrect assert:
+ vg_memory.c:441 (set_address_range_perms): Assertion `len < 30000000' failed.
+
+Me: remove incorrect assert:
+ vg_assert(u_in->flags_w != FlagsEmpty);
+ do to with instrumentation of RCL/RCR
+ tracked down by Kevin Ryde <user42@zip.com.au>
+
+Malcolm Studd <mestudd@uwaterloo.ca>
+Sanjay Ghemawat <sanjay@google.com>
+ Implement pread (180)
+
+Byrial Jensen <byrial@image.dk>
+ Implement getsid (147)
+ Implement TCFLSH
+
+Me
+ Implement pause (29)
+
+------------------------------ 6 Mar 02 -------------------------------
+
+Martin Nicolay <martin@osm-gmbh.de>
+ Implement fstatfs (100)
+ Implement ioctl FIOASYNC
+ Implement ioctl SIOCSPGRP (was previously noted-but-unhandled)
+
+Sanjay Ghemawat <sanjay@google.com>
+ Implement sync (36)
+ Make mallopt() into a no-op, rather than panic
+
+------------------------------ 7 Mar 02 -------------------------------
+
+Me
+ Write a great deal of technical docs about Valgrind internals
+ See docs/techdocs.html
+
+Me
+ Complete renaming of the kernel interface (vg_kerneliface.h)
+ definitions.
+
+"Byrial Jensen" <byrial@image.dk>
+ Use kernel rather than glibc sizes for struct termios
+
+Martin Jones <mjones@trolltech.com>
+ Implement ioctl MIXER_WRITE(0)
+
+Jon Trowbridge <trow@ximian.com>
+ Implement syscall pwrite (181)
+
+Me
+ Revamp the leak detector; fix various segfaults and bus errors in
+ it, and add the --show-reachable=no|yes flag, which makes it more
+ useful.
+
+------------------------------ 8 Mar 02 -------------------------------
+
+Me
+ Split up huge basic blocks into pieces, to avoid this:
+ vg_main.c:495 (vgPlain_create_translation_for): Assertion
+ `trans_size > 0 && trans_size < 65536' failed
+
+Crispin Flowerday <cflowerday@zeus.com>
+ Implement syscall sendfile (187)
+ Allow accept to have NULL 3rd argument
+
+Me
+ Write some more tech docs on the instrumentation and JITter
+
+----------------------------- 10 Mar 02 -------------------------------
+
+Crispin Flowerday <cflowerday@zeus.com>
+ SYS_SOCKETPAIR: on success, mark file descriptors as readable
+
+Ulrich Drepper <drepper@redhat.com>
+ Be cleverer on SYS_CONNECT
+
+Me
+ Fix strange parse error at vg_symtab2.c:1017
+ Complete tech docs to do with the instrumenting JITter
+ Write tech docs re future ideas
+
+----------------------------- 11 Mar 02 -------------------------------
+
+Me
+ Fix some compile problems on Debian Potato, and add some supps
+
+Julian Brown <brown@cs.bris.ac.uk>
+ Handle ioctl 0x40045431
+
+----------------------------- 12 Mar 02 -------------------------------
+
+Martin Burchell <martin.burchell@antlimited.com>
+ Some ioctls.
+
+Crispin Flowerday <cflowerday@zeus.com>
+ Improved handling of SIOCGIFCONF.
+
+Frank Zago <fzago@greshamstorage.com>
+ Various ioctls for the SCSI generic (sg) driver. Currently #if 0'd.
+
+Me
+ Fix obscure simulated CPU bug causing this:
+ -1: CMOVW t34, t36 (-rOSZACP)
+ valgrind: vg_to_ucode.c:4197 (disInstr): Assertion `sane' failed.
+ (Spotted by Thorsten Schnebeck <thorsten.schnebeck@gmx.net>)
+
+Me
+ Add yet more suppressions to linux24.supp
+
+Me [subrev b only]
+ In the leak checker, use __builtin_{setjmp,longjmp} instead of the
+ glibc (pthread) versions. This avoids a subtle memory corruption
+ problem caused by pthread_longjmp (or whatever it is called), which
+ finally manifests itself in this assertion failure:
+ vgPlain_primary_map[i] == & vg_distinguished_secondary_map
+ Many thanks to Michael Matz for coming up with an easy solution
+ which saved me hours of pissing around.
+
+----------------------------- 15 Mar 02 -------------------------------
+
+Stephan Kulow <coolo@kde.org>
+ Ioctls TIOCGPTN and TIOCSPTLCK
+
+Frank Zago <fzago@greshamstorage.com>
+ Various ioctls for the SCSI generic (sg) driver; these are now engaged.
+
+Harri Porten <porten@trolltech.com>
+ Fix "tiny omission" in debug outputs in vg_clientmalloc.c.
+
+Wolfram Gloger <wg@malloc.de>
+ mallopt returns 1 on success, not 0.
+ Implement __posix_memalign.
+
+Alasdair G Kergon <agk@arachsys.com>
+ Syscalls
+ setfsgid (139), setregid(71), setresuid(164), setfsuid(138).
+ (argc,argv,envp) hack: reject candidate alignments giving argc==0.
+
+Malte Starostik <malte@kde.org>
+ Various ioctls, including some ISDN ones.
+
+Richard Moore <rich@xmelegance.org>
+ Syscalls mlockall (152), munlockall (153), sched_get_priority_max (159),
+ sched_getscheduler (156), NR_sched_setscheduler (157).
+ Ioctl SG_IO.
+ Print ioctl numbers in hex.
+
+Me
+ Syscall _sysctl (149).
+
+Aaron M. Ucko <amu@monk.mit.edu>
+ Use the size/dir info encoded in the top 16 bits of an ioctl number,
+ where appropriate.
+
+Dirk Mueller <dirk@kde.org>
+ Syscall setfsuid32 (215), and bazillions of ioctls, mostly linux
+ soundcard ones.
+
+Me
+ (following request from Dirk Mueller)
+ Rehash of context management system. Now --num-callers= accepts
+ values from 2 to 50. Also --leak-resolution=low|med|high adjusts
+ how the leak detector presents results. RTFM ...
+
+----------------------------- 15 Mar 02 second snapshot (0315b) -------
+
+Me
+ Allow suppression of invalid free and mismatching free errors.
+
+ Resurrect the internal profiling stuff (VG_PROFILE) and then fail
+ to find anything obvious that I could speed up :-(
+
+ Start playing with using AMD cache prefetch insns as described
+ in docs/techdocs.html.
+
+ Wrap ioctl SNDCTL_DSP_GETSPDIF in #ifdef; apparently undefined in
+ RH 7.2.
+
+----------------------------- 17 Mar 02 -------------------------------
+
+Me
+ New flag -q --quiet, so it just prints error messages and nothing
+ else
+
+ Experimental feature: allow clients to set/check memory range
+ permissions. Read documentation pertaining to the --client-perms
+ flag.