]> granicus.if.org Git - graphviz/commitdiff
Fix PointSet leak when inserting same point
authorGlen Low <glen.low@pixelglow.com>
Sat, 12 Dec 2015 00:20:04 +0000 (08:20 +0800)
committerGlen Low <glen.low@pixelglow.com>
Sat, 12 Dec 2015 00:20:04 +0000 (08:20 +0800)
lib/common/pointset.c

index e0a50c3d9dda77f959e3c235bec4f561f2e324a8..257d189d25ccc862c2ac0268a742dfda705c1db2 100644 (file)
@@ -72,16 +72,23 @@ void freePS(PointSet * ps)
 
 void insertPS(PointSet * ps, point pt)
 {
-    dtinsert(ps, mkPair(pt));
+    pair *pp;
+
+    pp = mkPair(pt);
+    if (dtinsert(ps, pp) != pp)
+        free(pp);
 }
 
 void addPS(PointSet * ps, int x, int y)
 {
     point pt;
+    pair *pp;
 
     pt.x = x;
     pt.y = y;
-    dtinsert(ps, mkPair(pt));
+    pp = mkPair(pt);
+    if (dtinsert(ps, pp) != pp)
+        free(pp);
 }
 
 int inPS(PointSet * ps, point pt)