[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/fontconfig/devel fontconfig-2.3.95-fix-page-size-overflow.patch, NONE, 1.1 fontconfig.spec, 1.85, 1.86 fontconfig-2.3.95-maybe-fix-overflow.patch, 1.3, NONE



Author: rstrode

Update of /cvs/dist/rpms/fontconfig/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv15176

Modified Files:
	fontconfig.spec 
Added Files:
	fontconfig-2.3.95-fix-page-size-overflow.patch 
Removed Files:
	fontconfig-2.3.95-maybe-fix-overflow.patch 
Log Message:
- use "%5x" instead of " %4x" to support 64k instead of
  clamping.  Idea from Behdad.


fontconfig-2.3.95-fix-page-size-overflow.patch:
 fccache.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

--- NEW FILE fontconfig-2.3.95-fix-page-size-overflow.patch ---
--- fontconfig-2.3.95/src/fccache.c.fix-page-size-overflow	2006-08-11 13:34:08.000000000 -0400
+++ fontconfig-2.3.95/src/fccache.c	2006-08-11 13:34:08.000000000 -0400
@@ -39,6 +39,7 @@
 #define MACHINE_SIGNATURE_SIZE (9 + 5*20 + 1)
 /* for when we don't have sysconf: */
 #define FC_HARDCODED_PAGESIZE 8192 
+#define FC_MAX_PAGESIZE 0xfffff
 
 #ifndef O_BINARY
 #define O_BINARY 0
@@ -1536,10 +1537,28 @@
     static char buf[MACHINE_SIGNATURE_SIZE];
     int32_t magic = ENDIAN_TEST;
     char * m = (char *)&magic;
+    long page_size;
 
-    sprintf (buf, "%2x%2x%2x%2x "
+#if defined (HAVE_SYSCONF)
+    page_size = sysconf(_SC_PAGESIZE);
+#else
+    page_size = -1;
+#endif
+
+    if (page_size < 0)
+	    page_size = FC_HARDCODED_PAGESIZE;
+
+    if (page_size > FC_MAX_PAGESIZE)
+    {
+	    page_size = FC_MAX_PAGESIZE;
+	    fprintf (stderr, "system page size is bigger than expected\n");
+    }
+
+    snprintf (buf, 
+	      sizeof (buf),
+	     "%2x%2x%2x%2x "
 	     "%4x %4x %4x %4x %4x %4x %4x %4x %4x %4x %4x %4x "
-	     "%4x %4x %4x %4x %4x %4x %4x %4x\n", 
+	     "%4x %4x %4x %4x %4x %4x %4x%5x\n", 
 	     m[0], m[1], m[2], m[3],
 	     (unsigned int)sizeof (char),
 	     (unsigned int)sizeof (char *),
@@ -1560,11 +1579,7 @@
 	     (unsigned int)sizeof (FcCharLeaf),
 	     (unsigned int)sizeof (FcChar32),
 	     (unsigned int)sizeof (FcCache),
-#if defined (HAVE_SYSCONF)
-	     (unsigned int)sysconf(_SC_PAGESIZE));
-#else
-	     (unsigned int)FC_HARDCODED_PAGESIZE);
-#endif
+	     (unsigned int)page_size);
 
     return buf;
 }


Index: fontconfig.spec
===================================================================
RCS file: /cvs/dist/rpms/fontconfig/devel/fontconfig.spec,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- fontconfig.spec	11 Aug 2006 16:38:58 -0000	1.85
+++ fontconfig.spec	11 Aug 2006 17:35:44 -0000	1.86
@@ -3,7 +3,7 @@
 Summary: Font configuration and customization library
 Name: fontconfig
 Version: 2.3.95
-Release: 9%{?dist}
+Release: 10%{?dist}
 License: MIT
 Group: System Environment/Libraries
 Source: http://fontconfig.org/release/fontconfig-%{version}.tar.gz
@@ -17,7 +17,7 @@
 Patch3: fontconfig-2.4-cmap-parsing.patch
 Patch4: fontconfig-2.3.95-ttf-collections.patch
 Patch5: fontconfig-2.3.95-fd-leak.patch
-Patch6: fontconfig-2.3.95-maybe-fix-overflow.patch
+Patch6: fontconfig-2.3.95-fix-page-size-overflow.patch
 
 BuildRequires: freetype-devel >= %{freetype_version}
 BuildRequires: expat-devel
@@ -58,7 +58,7 @@
 %patch3 -p1 -b .cmap-parsing
 %patch4 -p1 -b .ttf-collections
 %patch5 -p1 -b .fd-leak
-%patch6 -p1 -b .maybe-fix-overflow
+%patch6 -p1 -b .fix-page-size-overflow
 
 %build
 %configure --with-add-fonts=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/OTF
@@ -145,6 +145,10 @@
 %{_mandir}/man3/*
 
 %changelog
+* Fri Aug 11 2006 Ray Strode <rstrode redhat com> - 2.3.95-10
+- use "%5x" instead of " %4x" to support 64k instead of
+  clamping.  Idea from Behdad.
+
 * Fri Aug 11 2006 Ray Strode <rstrode redhat com> - 2.3.95-9
 - tweak last patch to give a more reasonable page size
   value if 64k page size is in effect.


--- fontconfig-2.3.95-maybe-fix-overflow.patch DELETED ---


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]