add graphviz patch for CVE-2020-18032 (#2834)

Co-authored-by: minghe <mingheren@microsoft.com>
This commit is contained in:
Minghe Ren 2022-04-22 14:37:19 -07:00 committed by GitHub
parent 1deb83acf1
commit 232aa6d62c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 1 deletions

View File

@ -0,0 +1,41 @@
From 784411ca3655c80da0f6025ab20634b2a6ff696b Mon Sep 17 00:00:00 2001
From: Matthew Fernandez <matthew.fernandez@gmail.com>
Date: Sat, 25 Jul 2020 19:31:01 -0700
Subject: [PATCH] fix: out-of-bounds write on invalid label
When the label for a node cannot be parsed (due to it being malformed), it falls
back on the symbol name of the node itself. I.e. the default label the node
would have had if it had no label attribute at all. However, this is applied by
dynamically altering the node's label to "\N", a shortcut for the symbol name of
the node. All of this is fine, however if the hand written label itself is
shorter than the literal string "\N", not enough memory would have been
allocated to write "\N" into the label text.
Here we account for the possibility of error during label parsing, and assume
that the label text may need to be overwritten with "\N" after the fact. Fixes
issue #1700.
---
lib/common/shapes.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/common/shapes.c b/lib/common/shapes.c
index 0a0635fc3..9dca9ba6e 100644
--- a/lib/common/shapes.c
+++ b/lib/common/shapes.c
@@ -3546,9 +3546,10 @@ static void record_init(node_t * n)
reclblp = ND_label(n)->text;
len = strlen(reclblp);
/* For some forgotten reason, an empty label is parsed into a space, so
- * we need at least two bytes in textbuf.
+ * we need at least two bytes in textbuf, as well as accounting for the
+ * error path involving "\\N" below.
*/
- len = MAX(len, 1);
+ len = MAX(MAX(len, 1), (int)strlen("\\N"));
textbuf = N_NEW(len + 1, char);
if (!(info = parse_reclbl(n, flip, TRUE, textbuf))) {
agerr(AGERR, "bad label format %s\n", ND_label(n)->text);
--
GitLab

View File

@ -44,7 +44,7 @@
%endif
Name: graphviz
Version: 2.42.4
Release: 5%{?dist}
Release: 6%{?dist}
Summary: Graph Visualization Tools
License: EPL-1.0
Vendor: Microsoft Corporation
@ -54,6 +54,7 @@ Source0: https://gitlab.com/%{name}/%{name}/-/archive/%{version}/%{name}-
# rhbz#1505230
Patch0: graphviz-2.42.2-dotty-menu-fix.patch
Patch1: graphviz-2.42.2-coverity-scan-fixes.patch
Patch2: CVE-2020-18032.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
@ -513,6 +514,9 @@ php --no-php-ini \
%{_mandir}/man3/*.3tcl*
%changelog
* Thu Apr 21 2022 Minghe Ren <mingheren@microsoft.com> - 2.42.4-6
- Add patch for CVE-2020-18032
* Mon Jan 31 2022 Thomas Crain <thcrain@microsoft.com> - 2.42.4-5
- Remove option to build with python2