[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] correct some memory problem

From: Luc Saillard <luc_at_fr.alcove.com>
Date: 2002-03-14 18:39:39 CET

On Thu, Mar 14, 2002 at 09:34:55AM -0600, Karl Fogel wrote:
> Luc Saillard <luc@fr.alcove.com> writes:
> > I use mpatrol to find some memory problem like memleak, or double free.
>
> Thanks. Do you have a reproduction recipe for this?

  Yes i link th libmpatrol with subversion (only the client svn), and lauch a
  svn pl on a local repository. I don't use the server with apache2. I can
  send the entire log from mpatrol but it's pretty big.

> I'm not familiar with how `mpatrol' works, so I don't know if it's
> needed to detect this problem. But the best thing would be to verify
> the fix with some real-world scenario that stimulates the problem.
> Frankly I'm not familiar enough with the expat-lite code to tell
> whether the checks you added are consistent with the code's internal
> assumptions, or if they're run-time compensations to paper over deeper
> problems...

  mpatrol (http://cbmamiga.demon.co.uk/mpatrol) is a library to detect all
  memory operation dymamically. It's very fine, have a good documentation and
  plenty options. And yes, it works everywhere not only Linux. But perhaps i
  think it miss a QUICKSTART file ... I use this option to trace subversion:
  MPATROL_OPTIONS="NOFREE=1024 PAGEALLOC=LOWER CHECK=- CHECKALL SHOWALL
  USEDEBUG AUTOSAVE=1 LEAKTABLE LOGALL LOGFILE=mpatrol.log OFLOWSIZE=256
  TRACE LEAKTABLE"

  I use it sometimes to find some memory leak in my program or to check
  illegal operation when gdb can not resolv me my problem. But when mpatrol
  report the bug, i have the entire call backtrace, so it's very easy to find
  a leak when you have a generic function to allocate memory.

  I will try to check some other part of subversion to find (perhaps) some
  other minor bugs.
 
> By the way, the two changes to xmlparse.c appear as separate diffs in
> your patch. That is, it looks like you're patching three files, when

  OK, but i prefer 3 patches that can apply in all order, and that can
  correct 3 bugs that 1 patch. But next i will use subversion to generate
  diff.
 
> Finally, a log message helps -- here's an example one for the change
> below, see the HACKING file for more on log messages:
>
> Add checks for null pointers:
>
> * expat-lite/xmlparse.c
> (poolGrow): Check pool->start before using it.
> (XML_ParserFree): Check groupConnector, buffer, and
> unknownEncodingMem before freeing.
>
> * expat-lite/hashtable.c
> (hashTableDestroy): Check table->v before destroying it.
>

  Thanks for the log ... :), i will try to do better next time when i found
  another bug.
 
 Luc

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Mar 14 18:40:20 2002

This is an archived mail posted to the Subversion Dev mailing list.