<div dir="ltr">In case you decide to give it a shot, here is a possibility:<div><br></div><div>"Done" is the first member in the class, and the class has no<br></div><div>virtual methods, nor does it have any superclass to inherit them</div><div>from, therefor the class has no vtable. This means that the address</div><div>of "Done" is identical to the address of the vtkSharedData object itself.</div><div><br></div><div>Therefore, a bad write through a "vtkSharedData *" will directly write</div><div>to the "Done" member, even if the write is only a single byte in size.</div><div><br></div><div>For buffer overruns, a likely culprit is vtkDataEncoder::vtkInternals,</div><div>which has a vtkSharedData member. The member just before it</div><div>is a vtkMultiThreader declared with vtkNew.</div><div><br></div><div>Since when can vtkNew be used to declare member variables?</div><div>I though that vtkSmartPointer was supposed to be used for that.</div><div><br></div><div>Well, anyway, I'm kind of trying to make the point that the fact</div><div>that it "might not be easy" to find the error is pretty obvious...</div><div>but it's definitely worth at least looking through the code.</div><div><br></div><div> - David</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 18, 2014 at 11:16 AM, Sebastien Jourdain <span dir="ltr"><<a href="mailto:sebastien.jourdain@kitware.com" target="_blank">sebastien.jourdain@kitware.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That's my thought, but will need a deeper investigation.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 18, 2014 at 11:15 AM, Ben Boeckel <span dir="ltr"><<a href="mailto:ben.boeckel@kitware.com" target="_blank">ben.boeckel@kitware.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Thu, Dec 18, 2014 at 10:16:11 -0700, Sebastien Jourdain wrote:<br>
> This is weird. The Done is properly initialized and get only set to "true"<br>
> or "false"...<br>
><br>
> vtkSharedData() : Done(false), ActiveThreadCount(0)<br>
><br>
> {<br>
><br>
> }<br>
<br>
</span>Could a buffer overflow be corrupting Done?<br>
<span><font color="#888888"><br>
--Ben<br>
</font></span></blockquote></div></div>
</div></div></blockquote></div></div>