File graphviz-2.40.1-fix-dot-segfault.patch of Package graphviz.20622
From b3e8099771ee752c791d861e2f936beba1cb5a14 Mon Sep 17 00:00:00 2001
From: Thadeus Fleming <thadeus.j.fleming@gmail.com>
Date: Fri, 23 Mar 2018 10:42:25 -0500
Subject: [PATCH] Prevent exponential growth of length of edges in clusters
`edgelabel_ranks` gets called for the root graph and all of its cluster
subgraphs. It should only double `ED_minlen` for each edge once. Reverting the
test for labeled edges to check only the active graph, rather than its root,
prevents it from expanding the `minlen` once for every level of cluster
containing the edge.
Fixes #1246
---
lib/dotgen/rank.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/dotgen/rank.c b/lib/dotgen/rank.c
index 1c887b290..5808c0b5b 100644
--- a/lib/dotgen/rank.c
+++ b/lib/dotgen/rank.c
@@ -96,7 +96,7 @@ edgelabel_ranks(graph_t * g)
node_t *n;
edge_t *e;
- if (GD_has_labels(g->root) & EDGE_LABEL) {
+ if (GD_has_labels(g) & EDGE_LABEL) {
for (n = agfstnode(g); n; n = agnxtnode(g, n))
for (e = agfstout(g, n); e; e = agnxtout(g, e))
ED_minlen(e) *= 2;
--
2.26.2