#53 malloc assertion fails when vdeterm is run

closed-fixed
renzo davoli
vde_switch (14)
5
2011-06-11
2011-06-09
Anonymous
No

Hi,

I'm using the pdump plugin on vde_switch and use wireshark via cat and ssh to monitor the traffic of the switch remotely. After setting up this monitoring configuration, running "vdeterm /path/to/mgmt_socket" gives the following error:

---
VDE switch V.2.2.3
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vdeterm: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Aborted
---

Running the same command under valgrind gives:

---
==1810== Invalid write of size 8
==1810== at 0x52BAE08: vdehist_create_commandlist (libvdehist.c:224)
==1810== by 0x52BBF64: vdehist_new (libvdehist.c:571)
==1810== by 0x400F7A: main (vdeterm.c:139)
==1810== Address 0x5a583d8 is 0 bytes after a block of size 376 alloc'd
==1810== at 0x4C28FAC: malloc (vg_replace_malloc.c:236)
==1810== by 0x52BADD1: vdehist_create_commandlist (libvdehist.c:220)
==1810== by 0x52BBF64: vdehist_new (libvdehist.c:571)
==1810== by 0x400F7A: main (vdeterm.c:139)
==1810==
---

Apparently there's a pointer/memory allocation related problem. I haven't yet looked into the code much to pinpoint the bug, but I hope this can be fixed.

Cheers

Discussion

  • renzo davoli
    renzo davoli
    2011-06-09

    • assigned_to: nobody --> rd235
     
  • renzo davoli
    renzo davoli
    2011-06-09

    It seems to be the problem already solved in the SVN commit #441. Please update the code to the latest svn and tell me if the problem is still there.

     
  • tomlar
    tomlar
    2011-06-10

    I fetched the latest source via svn, and reinstalled vde. The problem seems to be fixed, as you said. Thanks for the quick response.

     
  • renzo davoli
    renzo davoli
    2011-06-11

    • status: open --> closed-fixed