Memory leaks found by DMALLOC?

"raphael.huck" <[email protected]>
Newsgroups gmane.text.clearsilver.general
Message-ID <[email protected]>
Hi,

Here's what I've found with DMALLOC:

$ dmalloc_summarize.pl fastcgi < fastcgi.10983 
      size      count      gross function
                 1494     401044 total
       284       1364     387376 ra=0x436818
      1176          9      10584 _err_alloc+64> and ends at 0x43681c 
<_err_alloc [neo_err.c:59] 
       240          2        480 hcreate_r 
        16          4         64 check_resize+76> and ends at 
0x4389a8 <check_resize [ulist.c:37] 
        20          3         60 uListInit+68> and ends at 0x438a5c 
<uListInit [ulist.c:61] 



The part which leaks the most memory is around 0x436818, which is:

$ mips-linux-objdump -S fastcgi | grep -A 21 -B 25 436818
static NEOERR *_err_alloc(void)
{
  4367d0:       3c1c0fbd        lui     gp,0xfbd
  4367d4:       279c2c10        addiu   gp,gp,11280
  4367d8:       0399e021        addu    gp,gp,t9
  4367dc:       27bdffe0        addiu   sp,sp,-32
  4367e0:       afbf0018        sw      ra,24(sp)
  4367e4:       afbc0010        sw      gp,16(sp)
  NEOERR *err;

  if (!UseFreeList || FreeList == NULL)
  4367e8:       8f828018        lw      v0,-32744(gp)
  4367ec:       8f878018        lw      a3,-32744(gp)
  {
    err = (NEOERR *)calloc (1, sizeof (NEOERR));
  4367f0:       8f9988dc        lw      t9,-30500(gp)
  4367f4:       8c4325d0        lw      v1,9680(v0)
  4367f8:       2405011c        li      a1,284
  4367fc:       10600004        beqz    v1,436810 <_err_alloc+0x40>
  436800:       24040001        li      a0,1
  436804:       8ce625cc        lw      a2,9676(a3)
  436808:       14c0000d        bnez    a2,436840 <_err_alloc+0x70>
  43680c:       8fbf0018        lw      ra,24(sp)
  436810:       0320f809        jalr    t9
  436814:       00000000        nop
  436818:       8fbc0010        lw      gp,16(sp)
    if (err == NULL)
    {
      ne_warn ("INTERNAL ERROR: Unable to allocate memory for 
NEOERR");
      return INTERNAL_ERR;
    }
    return err;
  43681c:       00402821        move    a1,v0
  436820:       8f848024        lw      a0,-32732(gp)
  436824:       8f998aa4        lw      t9,-30044(gp)
  436828:       1040000f        beqz    v0,436868 <_err_alloc+0x98>
  43682c:       24844130        addiu   a0,a0,16688
  }
  else
  {
    err = FreeList;
    FreeList = FreeList->next;
  }
  err->flags |= NE_IN_USE;
  err->next = NULL;
  return err;
}

These seem to be memory leaks. Can anyone confirm?

--Raphaël HUCK
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.