Skip to content
  • Andras Lasso's avatar
    Fix vtkPolyData::GetCell() crash · 1f04cc68
    Andras Lasso authored and Jean-Christophe Fillion-Robin's avatar Jean-Christophe Fillion-Robin committed
    vtkPolyData::GetCell() crashed the application if any of a cell in a polydata contained less points than expected.
    
    Details: There was a very strict check in vtkPolyData::BuildCells() that cleared out vtkPolyData::Cells when
    the number of points in any of the cells in a polydata was less than expected.
    Since vtkPolyData::GetCell() assumes that vtkPolyData::BuildCells() creates a valid vtkPolyData::Cells object,
    when that strict check failed, vtkPolyData::GetCell() crashed.
    
    The crash could be fixed by an additional null-pointer checks at every use of vtkPolyData::Cells.
    However, it has been valid to store less than 2 points in a VTK_POLY_LINE cell for decades.
    Very complex algorithms have been built, relying on this feature.
    This feature cannot be just suddenly taken away, because it is extremely difficult to rework large
    computational geometry algorithms to take into account this new constraint.
    1f04cc68