- typo in cmd/gvpr/lib/clustg #1781
- Segfault in dot #1783
- Incorrect 'Arrow type "s" unknown' error #1444
+- segfault on reading 0x10 #1724
## [2.44.1] - 2020-06-29
hc = ND_clust(aghead(e));
if (is_internal_to_cluster(e)) {
+ graph_t *clust_tail = ND_clust(agtail(e));
+ graph_t *clust_head = ND_clust(aghead(e));
/* determine if graph requires reversed edge */
- if ((find(agtail(e)) == GD_maxrep(ND_clust(agtail(e))))
- || (find(aghead(e)) == GD_minrep(ND_clust(aghead(e))))) {
+ if ((clust_tail != NULL && find(agtail(e)) == GD_maxrep(clust_tail))
+ || (clust_head != NULL && find(aghead(e)) == GD_minrep(clust_head))) {
node_t *temp = Xt;
Xt = Xh;
Xh = temp;
assert 'line 3:' in stderr, \
'GVPR did not identify correct line of syntax error'
+def test_1724():
+ '''
+ passing malformed node and newrank should not cause segfaults
+ https://gitlab.com/graphviz/graphviz/-/issues/1724
+ '''
+
+ # locate our associated test case in this directory
+ input = os.path.join(os.path.dirname(__file__), '1724.dot')
+ assert os.path.exists(input), 'unexpectedly missing test case'
+
+ # run Graphviz with this input
+ ret = subprocess.call(['dot', '-Tsvg', '-o', os.devnull, input])
+
+ assert ret != -signal.SIGSEGV, 'Graphviz segfaulted'
+
def test_1767():
'''
using the Pango plugin multiple times should produce consistent results