MantisBT - ParaView | ||||||||||
View Issue Details | ||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | |||||
0013225 | ParaView | (No Category) | public | 2012-06-07 11:47 | 2013-01-10 20:16 | |||||
Reporter | Lawrence | |||||||||
Assigned To | Sebastien Jourdain | |||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | |||||
Status | closed | Resolution | fixed | |||||||
Platform | OS | OS Version | ||||||||
Product Version | 3.14.1 | |||||||||
Target Version | Fixed in Version | |||||||||
Project | TBD | |||||||||
Topic Name | 13225_make_vtkPVDataInformation_more_robust | |||||||||
Type | crash | |||||||||
Summary | 0013225: Crash Bug/Bad Memory Read in pqQueryDialog (vtkDataObjectTypes::GetClassNameFromTypeId also partly to blame) | |||||||||
Description | When pqQueryDialog::populateSelectionType() is used before the pipeline has been updated a bad memory read occurs in VTK's vtkDataObjectTypes::GetClassNameFromTypeId because typeId is -1 Steps to reproduce: Create a Wavelet source. Do not click Apply. Select Menu>Find Data. In our Win7 debug build and official 3.14.1 release this causes a crash due to bad memory access. The cause of the crash is that vtkPVDataInformation is not fully initialized (DataSetType is still -1). which leads to a later bad access: pqQueryDialog::populateSelectionType() if(dataInfo->DataSetTypeIsA("vtkGraph")) vtkPVDataInformation::DataSetTypeIsA(const char* type) if (strcmp(type, this->GetDataSetTypeAsString()) == 0) which calls GetDataSetTypeAsString with -1 vtkDataObjectTypes::GetClassNameFromTypeId(int type) There are two bugs here. First, that vtkDataObjectTypes::GetClassNameFromTypeId's bounds check is incomplete: if (type < numClasses) should be if (type >=0 && type < numClasses) to be more robust and prevent a bad memory access in the subsequent line- if (type < numClasses) { return vtkDataObjectTypesStrings[type]; } else { return "UnknownClass"; } Secondly, on the Paraview side, the dialog should have been more robust when the source info is not yet available. Best, Lawrence | |||||||||
Steps To Reproduce | ||||||||||
Additional Information | ||||||||||
Tags | No tags attached. | |||||||||
Relationships |
| |||||||||
Attached Files | ||||||||||
Issue History | ||||||||||
Date Modified | Username | Field | Change | |||||||
2012-06-07 11:47 | Lawrence | New Issue | ||||||||
2012-06-20 10:58 | Utkarsh Ayachit | Relationship added | related to 0013150 | |||||||
2012-11-27 15:02 | Sebastien Jourdain | Topic Name | => 13225_make_vtkPVDataInformation_more_robust | |||||||
2012-11-27 15:02 | Sebastien Jourdain | Status | backlog => gatekeeper review | |||||||
2012-11-27 15:02 | Sebastien Jourdain | Resolution | open => fixed | |||||||
2012-11-27 15:02 | Sebastien Jourdain | Assigned To | => Sebastien Jourdain | |||||||
2012-11-28 09:21 | Sebastien Jourdain | Status | gatekeeper review => customer review | |||||||
2012-11-28 09:21 | Sebastien Jourdain | Note Added: 0029805 | ||||||||
2013-01-10 20:16 | Alan Scott | Note Added: 0030066 | ||||||||
2013-01-10 20:16 | Alan Scott | Status | customer review => closed |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|