[vtk-developers] vtkDataArrayTemplate.cxx writes out of bounds when malloc fails
Burlen Loring
burlen.loring at kitware.com
Sun Jun 22 20:04:26 EDT 2008
Hi all,
Thanks for all of the feedback. I think we have an acceptable solution
at hand. We can continue to use malloc/realloc/free and when
malloc/realloc fails, handle as follows:
newArray = static_cast<T*>(malloc(newSize*sizeof(T)));
if(!newArray)
{
vtkErrorMacro("Unable to allocate " << newSize
<< " elements of size " << sizeof(T)
<< " bytes. ");
#if !defined NDEBUG
// We're debugging, crash here preserving the stack
abort();
#elif !defined VTK_DONT_THROW_BAD_ALLOC
// We can throw something that has universal meaning
throw vtkstd::bad_alloc();
#else
// We indicate that malloc failed by return
return 0;
#endif
}
I am attaching the patch for any who wishes to review in more detail. Is
there any objection to this approach?
Thanks in advance.
Burlen
--
Burlen Loring
Kitware, Inc.
R&D Engineer
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-371-3971 x137
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vtkDataArrayTemplate.txx.patch
Type: text/x-diff
Size: 10706 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20080622/ccb8f664/attachment-0001.patch>
More information about the vtk-developers
mailing list