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 | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||