]> granicus.if.org Git - graphviz/commitdiff
Fix user reported memory leak in record_free
authorerg <devnull@localhost>
Wed, 2 Aug 2006 20:36:39 +0000 (20:36 +0000)
committererg <devnull@localhost>
Wed, 2 Aug 2006 20:36:39 +0000 (20:36 +0000)
lib/common/shapes.c

index 04a158faa8dc4d0f30c31d3b93e8e849a8604744..744ed3bfef22f8bd46a2d80abcd0423d68888318 100644 (file)
@@ -1706,11 +1706,25 @@ static void record_init(node_t * n)
     ND_shape_info(n) = (void *) info;
 }
 
+static void free_field (field_t* f)
+{
+    int i;
+
+    for (i=0; i<f->n_flds; i++ ) {
+        free_field(f->fld[i]);
+    }
+
+    free(f->id);
+    free_label(f->lp);
+    free(f->fld);
+    free(f);
+}
+
 static void record_free(node_t * n)
 {
     field_t *p = ND_shape_info(n);
 
-    free(p);
+    free_field (p);
 }
 
 static field_t *map_rec_port(field_t * f, char *str)