View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014671VTK(No Category)public2014-04-08 09:542015-01-09 13:39
ReporterDr. Frank Heimes 
Assigned ToSean McBride 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version6.0.0 
Target VersionFixed in Version6.2.0 
Summary0014671: Null pointer dereference in ~vtkRenderWindow
DescriptionAt line 125 of file vtkRenderWindow.cxx
The command this->PainterDeviceAdapter->Delete(); causes a null pointer dereference, because this->PainterDeviceAdapter is null.

Reason:
In line 82, this->PainterDeviceAdapter = vtkPainterDeviceAdapter::New(); yields null, because vtkPainterDeviceAdapter.cxx is designed and documented to do just that.

Fix:

Either 1)
In line 29 of vtkPainterDeviceAdapter.cxx, replace the default macro definition with this:
#ifndef vtkAbstractObjectFactoryNewMacro
#error You must redefine macro vtkAbstractObjectFactoryNewMacro before including this header
#endif

or 2)
In line 123ff of vtkRenderWindow.cxx, prepare the destructor for the null pointer case:

if (Renderers != nullptr)
    Renderers->Delete();

if (PainterDeviceAdapter != nullptr)
    PainterDeviceAdapter->Delete();

BTW.: Is it really necessary to make the code so extraordinary verbose by prefixing all members with "this->"?
Tagshackaton
ProjectKitware
Typecrash
Attached Files

 Relationships

  Notes
(0033390)
Sean McBride (developer)
2014-10-01 10:31

Dr Heimes, seems someone has added a "if (this->PainterDeviceAdapter)" since you filed this. There's no "if (Renderers != nullptr)" defence, but since you proposed it, I guess you have a way to repro it, so I can add it trivially...
(0033396)
Sean McBride (developer)
2014-10-01 13:02

http://review.source.kitware.com/17303 [^]
(0033418)
Sean McBride (developer)
2014-10-02 09:23

Merged.

 Issue History
Date Modified Username Field Change
2014-04-08 09:54 Dr. Frank Heimes New Issue
2014-10-01 10:24 Sean McBride Assigned To => Sean McBride
2014-10-01 10:24 Sean McBride Status backlog => tabled
2014-10-01 10:31 Sean McBride Note Added: 0033390
2014-10-01 10:31 Sean McBride Tag Attached: hackaton
2014-10-01 12:40 Berk Geveci Status tabled => backlog
2014-10-01 13:02 Sean McBride Note Added: 0033396
2014-10-01 13:02 Sean McBride Status backlog => gerrit review
2014-10-02 09:23 Sean McBride Note Added: 0033418
2014-10-02 09:23 Sean McBride Status gerrit review => closed
2014-10-02 09:23 Sean McBride Resolution open => fixed
2014-10-02 09:23 Sean McBride Fixed in Version => 6.2.0
2015-01-09 13:38 Sean McBride Source_changeset_attached => VTK master aab8c86a
2015-01-09 13:39 Sean McBride Source_changeset_attached => VTK master 64e66d78


Copyright © 2000 - 2018 MantisBT Team