[vtk-developers] "vtkCommonCoreTcl-TestEmptyInput" fails due to use-after-free in vtkDataEncoder

Sean McBride sean at rogue-research.com
Mon Mar 30 17:32:09 EDT 2015

Hi all,

On my Rogue7 dashboard vtkCommonCoreTcl-TestEmptyInput fails intermittently. 

I debugged it a bit and, long story short, the evidence suggested a use-after-free so I enabled MallocScribble (on OS X it writes 0x55 to freed memory) and caught it in lldb:

(lldb) bt
* thread #7: tid = 0x64d84d, 0x00007fff8a7afbc9 libsystem_c.dylib`pthread_mutex_lock + 20, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00007fff8a7afbc9 libsystem_c.dylib`pthread_mutex_lock + 20
    frame #1: 0x0000000100fd0e3e libvtkCommonCore-6.3.1.dylib`vtkSimpleMutexLock::Lock(this=0x555555555555561d) + 94 at vtkMutexLock.cxx:75
    frame #2: 0x000000013886bd3e libvtkWebCore-6.3.1.dylib`(anonymous namespace)::vtkSharedData::BeginWorker(this=0x5555555555555555) + 158 at vtkDataEncoder.cxx:99
    frame #3: 0x000000013886ad18 libvtkWebCore-6.3.1.dylib`(anonymous namespace)::Worker(calldata=0x000000010f046740) + 248 at vtkDataEncoder.cxx:304
    frame #4: 0x00007fff8a7aa772 libsystem_c.dylib`_pthread_start + 327
    frame #5: 0x00007fff8a7971a1 libsystem_c.dylib`thread_start + 13

Notice the this=0x5555555555555555.  Definitely use-after-free.

Hopefully this is enough for someone that knows this code to squash the bug...!


Sean McBride, B. Eng                 sean at rogue-research.com
Rogue Research                        www.rogue-research.com 
Mac Software Developer              Montréal, Québec, Canada

More information about the vtk-developers mailing list