V560 CWE-570

This commit is contained in:
Abdullah Tahiri
2019-04-07 07:38:13 +02:00
committed by wmayer
parent 5407d31c6b
commit eebd4cecdb

View File

@@ -6256,45 +6256,31 @@ bool SketchObject::evaluateConstraint(const Constraint *constraint) const
{
//if requireXXX, GeoUndef is treated as an error. If not requireXXX,
//GeoUndef is accepted. Index range checking is done on everything regardless.
bool requireFirst = true;
// constraints always require a First!!
bool requireSecond = false;
bool requireThird = false;
switch (constraint->Type) {
case Radius:
requireFirst = true;
break;
case Diameter:
requireFirst = true;
break;
case Horizontal:
case Vertical:
requireFirst = true;
break;
case Distance:
case DistanceX:
case DistanceY:
requireFirst = true;
break;
case Coincident:
case Perpendicular:
case Parallel:
case Equal:
case PointOnObject:
case Angle:
break;
case Tangent:
requireFirst = true;
requireSecond = true;
break;
case Symmetric:
requireFirst = true;
requireSecond = true;
requireThird = true;
break;
case Angle:
requireFirst = true;
break;
case SnellsLaw:
requireFirst = true;
requireSecond = true;
requireThird = true;
break;
@@ -6308,10 +6294,10 @@ bool SketchObject::evaluateConstraint(const Constraint *constraint) const
//the actual checks
bool ret = true;
int geoId;
// First is always required and GeoId must be within range
geoId = constraint->First;
ret = ret && ((geoId == Constraint::GeoUndef && !requireFirst)
||
(geoId >= -extGeoCount && geoId < intGeoCount) );
ret = ret && (geoId >= -extGeoCount && geoId < intGeoCount);
geoId = constraint->Second;
ret = ret && ((geoId == Constraint::GeoUndef && !requireSecond)