]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Some protections against not kind C++ users.
authorageay <ageay>
Fri, 15 Mar 2013 16:27:17 +0000 (16:27 +0000)
committerageay <ageay>
Fri, 15 Mar 2013 16:27:17 +0000 (16:27 +0000)
src/MEDCoupling/MEDCouplingPointSet.cxx
src/MEDCoupling/MEDCouplingUMesh.cxx

index 09582e6a32332b005a1d5d570f2eb6038819cb9f..f8480f8c2a77650b43991355fb858b37de98ec30 100644 (file)
@@ -655,9 +655,15 @@ void MEDCouplingPointSet::findNodesOnPlane(const double *pt, const double *vec,
 {
   if(getSpaceDimension()!=3)
     throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnPlane : Invalid spacedim to be applied on this ! Must be equal to 3 !");
+  if(!pt)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnPlane : NULL point pointer specified !");
+  if(!vec)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnPlane : NULL vector pointer specified !");
   int nbOfNodes=getNumberOfNodes();
   double a=vec[0],b=vec[1],c=vec[2],d=-pt[0]*vec[0]-pt[1]*vec[1]-pt[2]*vec[2];
   double deno=sqrt(a*a+b*b+c*c);
+  if(deno<std::numeric_limits<double>::min())
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnPlane : vector pointer specified has norm equal to 0. !");
   const double *work=_coords->getConstPointer();
   for(int i=0;i<nbOfNodes;i++)
     {
@@ -689,6 +695,10 @@ void MEDCouplingPointSet::findNodesOnLine(const double *pt, const double *vec, d
   int spaceDim=getSpaceDimension();
   if(spaceDim!=2 && spaceDim!=3)
     throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnLine : Invalid spacedim to be applied on this ! Must be equal to 2 or 3 !");
+  if(!pt)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnLine : NULL point pointer specified !");
+  if(!vec)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::findNodesOnLine : NULL vector pointer specified !");
   int nbOfNodes=getNumberOfNodes();
   double den=0.;
   for(int i=0;i<spaceDim;i++)
index 312e9bc53138a15b4603e7659748063c3d029c67..b842fa2c74f799e5adb775ca5553a4313e98cdce 100644 (file)
@@ -206,8 +206,8 @@ void MEDCouplingUMesh::checkCoherency2(double eps) const throw(INTERP_KERNEL::Ex
 
 void MEDCouplingUMesh::setMeshDimension(int meshDim)
 {
-  if(meshDim<-1)
-    throw INTERP_KERNEL::Exception("Invalid meshDim specified ! Must be greater or equal to -1 !");
+  if(meshDim<-1 || meshDim>3)
+    throw INTERP_KERNEL::Exception("Invalid meshDim specified ! Must be greater or equal to -1 and lower or equal to 3 !");
   _mesh_dim=meshDim;
   declareAsNew();
 }