IFC: fix possible use after free access bug.
authorKim Kulling <kim.kulling@googlemail.com>
Fri, 2 Sep 2016 18:06:56 +0000 (20:06 +0200)
committerKim Kulling <kim.kulling@googlemail.com>
Fri, 2 Sep 2016 18:06:56 +0000 (20:06 +0200)
code/IFCOpenings.cpp

index 51ea143..3197426 100644 (file)
@@ -715,14 +715,14 @@ void FindAdjacentContours(ContourVector::iterator current, const ContourVector&
             const Contour& mcontour = (*it).contour;
 
             for (size_t n = 0; n < ncontour.size(); ++n) {
-                const IfcVector2& n0 = ncontour[n];
-                const IfcVector2& n1 = ncontour[(n+1) % ncontour.size()];
+                const IfcVector2 n0 = ncontour[n];
+                const IfcVector2 n1 = ncontour[(n+1) % ncontour.size()];
 
                 for (size_t m = 0, mend = (is_me ? n : mcontour.size()); m < mend; ++m) {
                     ai_assert(&mcontour != &ncontour || m < n);
 
-                    const IfcVector2& m0 = mcontour[m];
-                    const IfcVector2& m1 = mcontour[(m+1) % mcontour.size()];
+                    const IfcVector2 m0 = mcontour[m];
+                    const IfcVector2 m1 = mcontour[(m+1) % mcontour.size()];
 
                     IfcVector2 isect0, isect1;
                     if (IntersectingLineSegments(n0,n1, m0, m1, isect0, isect1)) {