From 6735cded3f1d1a6a9237013c8ce8779a811f239d Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 17 Aug 2001 11:58:05 +0000
Subject: [PATCH] fixed possible seg. faults

---
 Mesh/3D_Extrude.cpp | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp
index 658a0ebc87..0000821a5c 100644
--- a/Mesh/3D_Extrude.cpp
+++ b/Mesh/3D_Extrude.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude.cpp,v 1.38 2001-08-15 15:25:27 geuzaine Exp $
+// $Id: 3D_Extrude.cpp,v 1.39 2001-08-17 11:58:05 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -42,21 +42,27 @@ List_T* getnxl(Vertex *v, Curve *c){
   nxl NXL;
   NXL.Dim = 1;
   NXL.Num = abs(c->Num);
-  return ((nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl))->List;
+  nxl *NXLP = (nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl);
+  if(NXLP) return NXLP->List;
+  return NULL;
 }
 
 List_T* getnxl(Vertex *v, Surface *s){
   nxl NXL;
   NXL.Dim = 2;
   NXL.Num = s->Num;
-  return ((nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl))->List;
+  nxl *NXLP = (nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl);
+  if(NXLP) return NXLP->List;
+  return NULL;
 }
 
 List_T* getnxl(Vertex *v, Volume *vol){
   nxl NXL;
   NXL.Dim = 3;
   NXL.Num = vol->Num;
-  return ((nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl))->List;
+  nxl *NXLP = (nxl*)List_PQuery(v->Extruded_Points, &NXL, compnxl);
+  if(NXLP) return NXLP->List;
+  return NULL;
 }
 
 List_T* getnxl(Vertex *v, int dim){
@@ -67,8 +73,10 @@ List_T* getnxl(Vertex *v, int dim){
   nxl NXL;
 
   NXL.Dim = dim;
-  if(dim==1)
-    return getnxl(v, THEC);
+  if(dim==1){
+    if((list = getnxl(v, THEC)))
+      return list;
+  }
   else if(dim==2){
     if((list = getnxl(v, THES)))
       return list;
-- 
GitLab