Revision: 48390
http://brlcad.svn.sourceforge.net/brlcad/?rev=48390&view=rev
Author: indianlarry
Date: 2012-01-11 15:46:11 +0000 (Wed, 11 Jan 2012)
Log Message:
-----------
Added check for NULL before using entiry field to resolve FORWARD_NULL issue
from coverity. Relates to CIDs: 1844-5
Modified Paths:
--------------
brlcad/trunk/src/conv/step/EdgeCurve.cpp
brlcad/trunk/src/conv/step/OrientedEdge.cpp
Modified: brlcad/trunk/src/conv/step/EdgeCurve.cpp
===================================================================
--- brlcad/trunk/src/conv/step/EdgeCurve.cpp 2012-01-11 15:37:23 UTC (rev
48389)
+++ brlcad/trunk/src/conv/step/EdgeCurve.cpp 2012-01-11 15:46:11 UTC (rev
48390)
@@ -75,17 +75,26 @@
if (edge_geometry == NULL) {
SCLP23(Application_instance) *entity =
step->getEntityAttribute(sse,"edge_geometry");
- edge_geometry = dynamic_cast<Curve
*>(Factory::CreateObject(sw,entity)); //CreateCurveObject(sw,entity));
- }
+ if (entity) {
+ edge_geometry = dynamic_cast<Curve
*>(Factory::CreateObject(sw,entity)); //CreateCurveObject(sw,entity));
+ if (edge_geometry != NULL) {
+ same_sense = step->getBooleanAttribute(sse,"same_sense");
- same_sense = step->getBooleanAttribute(sse,"same_sense");
-
- if (same_sense) {
- edge_geometry->Start(edge_start);
- edge_geometry->End(edge_end);
- } else {
- edge_geometry->Start(edge_end);
- edge_geometry->End(edge_start);
+ if (same_sense) {
+ edge_geometry->Start(edge_start);
+ edge_geometry->End(edge_end);
+ } else {
+ edge_geometry->Start(edge_end);
+ edge_geometry->End(edge_start);
+ }
+ } else {
+ std::cout << CLASSNAME << ":Error loading field
\"edge_geometry\"." << std::endl;
+ return false;
+ }
+ } else {
+ std::cout << CLASSNAME << ":Error loading field \"edge_geometry\"."
<< std::endl;
+ return false;
+ }
}
return true;
Modified: brlcad/trunk/src/conv/step/OrientedEdge.cpp
===================================================================
--- brlcad/trunk/src/conv/step/OrientedEdge.cpp 2012-01-11 15:37:23 UTC (rev
48389)
+++ brlcad/trunk/src/conv/step/OrientedEdge.cpp 2012-01-11 15:46:11 UTC (rev
48390)
@@ -73,12 +73,17 @@
SCLP23(Application_instance) *entity =
step->getEntityAttribute(sse,"edge_element");
if (entity) {
edge_element = dynamic_cast<Edge
*>(Factory::CreateObject(sw,entity));
- if (orientation == BTrue) {
- edge_start = edge_element->GetEdgeStart();
- edge_end = edge_element->GetEdgeEnd();
+ if (edge_element != NULL) {
+ if (orientation == BTrue) {
+ edge_start = edge_element->GetEdgeStart();
+ edge_end = edge_element->GetEdgeEnd();
+ } else {
+ edge_start = edge_element->GetEdgeEnd();
+ edge_end = edge_element->GetEdgeStart();
+ }
} else {
- edge_start = edge_element->GetEdgeEnd();
- edge_end = edge_element->GetEdgeStart();
+ std::cerr << CLASSNAME << ": Error loading entity attribute
'edge_element'." << std::endl;
+ return false;
}
} else {
std::cerr << CLASSNAME << ": Error loading entity attribute
'edge_element'." << std::endl;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits