[fontforge/el5/master] Add patch to fix CVE-2010-4259 (fixes #659359)
Kevin Fenzi
kevin at fedoraproject.org
Sat Dec 4 22:28:34 UTC 2010
commit 08378e8a8b967531a03127e0a00404705649c2cd
Author: Kevin Fenzi <kevin at tummy.com>
Date: Sat Dec 4 15:28:23 2010 -0700
Add patch to fix CVE-2010-4259 (fixes #659359)
fontforge-20061025-CVE-2010-4259.patch | 50 ++++++++++++++++++++++++++++++++
fontforge.spec | 6 +++-
2 files changed, 55 insertions(+), 1 deletions(-)
---
diff --git a/fontforge-20061025-CVE-2010-4259.patch b/fontforge-20061025-CVE-2010-4259.patch
new file mode 100644
index 0000000..0719761
--- /dev/null
+++ b/fontforge-20061025-CVE-2010-4259.patch
@@ -0,0 +1,50 @@
+--- fontforge/fontforge/fvimportbdf.c 15 Apr 2010 10:47:36 -0000 1.58
++++ fontforge/fontforge/fvimportbdf.c 3 Dec 2010 21:03:38 -0000
+@@ -560,7 +560,7 @@
+ }
+
+ if ( strcmp(tok,"FONT")==0 ) {
+- if ( sscanf(buf,"-%*[^-]-%[^-]-%[^-]-%[^-]-%*[^-]-", family, weight, italic )!=0 ) {
++ if ( sscanf(buf,"-%*[^-]-%99[^-]-%99[^-]-%99[^-]-%*[^-]-", family, weight, italic )!=0 ) {
+ char *pt=buf;
+ int dcnt=0;
+ while ( *pt=='-' && dcnt<7 ) { ++pt; ++dcnt; }
+@@ -616,26 +616,30 @@
+ sscanf(buf, "%d", &defs->metricsset );
+ else if ( strcmp(tok,"VVECTOR")==0 )
+ sscanf(buf, "%*d %d", &defs->vertical_origin );
++ /* For foundry, fontname and encname, only copy up to the buffer size */
+ else if ( strcmp(tok,"FOUNDRY")==0 )
+- sscanf(buf, "%[^\"]", foundry );
++ sscanf(buf, "%99[^\"]", foundry );
+ else if ( strcmp(tok,"FONT_NAME")==0 )
+- sscanf(buf, "%[^\"]", fontname );
++ sscanf(buf, "%99[^\"]", fontname );
+ else if ( strcmp(tok,"CHARSET_REGISTRY")==0 )
+- sscanf(buf, "%[^\"]", encname );
++ sscanf(buf, "%99[^\"]", encname );
+ else if ( strcmp(tok,"CHARSET_ENCODING")==0 ) {
+ enc = 0;
+ if ( sscanf(buf, " %d", &enc )!=1 )
+ sscanf(buf, "%d", &enc );
++ /* These properties should be copied up to the buffer length too */
+ } else if ( strcmp(tok,"FAMILY_NAME")==0 ) {
+- strcpy(family,buf);
++ strncpy(family,buf,99);
+ } else if ( strcmp(tok,"FULL_NAME")==0 || strcmp(tok,"FACE_NAME")==0 ) {
+- strcpy(full,buf);
++ strncpy(full,buf,99);
+ } else if ( strcmp(tok,"WEIGHT_NAME")==0 )
+- strcpy(weight,buf);
++ strncpy(weight,buf,99);
+ else if ( strcmp(tok,"SLANT")==0 )
+- strcpy(italic,buf);
++ strncpy(italic,buf,99);
+ else if ( strcmp(tok,"COPYRIGHT")==0 ) {
+- strcpy(comments,buf);
++ /* LS: Assume the size of the passed-in buffer is 1000, see below in
++ * COMMENT */
++ strncpy(comments,buf,999);
+ found_copyright = true;
+ } else if ( strcmp(tok,"COMMENT")==0 && !found_copyright ) {
+ char *pt = comments+strlen(comments);
diff --git a/fontforge.spec b/fontforge.spec
index 947aa92..4dbd365 100644
--- a/fontforge.spec
+++ b/fontforge.spec
@@ -3,7 +3,7 @@
Name: fontforge
Version: 20061025
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Outline and bitmap font editor
Group: Applications/Publishing
@@ -14,6 +14,7 @@ Source1: fontforge.desktop
Source2: http://dl.sf.net/fontforge/fontforge_htdocs-%{docs_version}.tar.bz2
Patch1: fontforge-20061025-usFirstCharIndex.patch
Patch2: fontforge-20061025-fsSel.patch
+Patch3: fontforge-20061025-CVE-2010-4259.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: htmlview
@@ -116,6 +117,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat Dec 04 2010 Kevin Fenzi <kevin at tummy.com> - 20061025-3
+- Add patch to fix CVE-2010-4259 (fixes #659359)
+
* Sat Dec 09 2006 Roozbeh Pournader <roozbeh at farsiweb.info> - 20061025-2
- Add patch to fix fsSelection problem with DejaVu ExtraLight
More information about the fonts-bugs
mailing list