freebsd-ports/x11-servers/Xfstt/files/patch-ab
Steve Price dd9e75d1aa From submitter:
xfstt core dumps at times, especially when trying to serve the
        regular "Courier New" font (COUR.TTF).  As a result, X clients
        trying to set the font will hang, and killing the hung clients
        brings down X.

        The problem is that xfstt calls realloc(), through its #define
        shrinkMem(), but neglects to adjust a pointer that used to
        point to memory within the old block.  A subsequent copying of
        that pointer then merrily SIGSEGV's the code.

PR:		19716
Submitted by:	Chan Tur Wei <twchan@singnet.com.sg>
2000-07-07 16:22:34 +00:00

29 lines
887 B
Plaintext

--- xfstt.cpp.orig Thu Jul 6 18:14:25 2000
+++ xfstt.cpp Thu Jul 6 18:15:31 2000
@@ -11,8 +11,8 @@
#define UNSTRAPLIMIT 10500U
// Change these if you don't lie being FHS complient
-#define TTFONTDIR "/usr/share/fonts/truetype"
-#define TTCACHEDIR "/var/cache/xfstt"
+#define TTFONTDIR "/usr/X11R6/lib/X11/fonts/TrueType"
+#define TTCACHEDIR "/usr/X11R6/lib/X11/fonts/TrueType"
#define TTINFO_LEAF "ttinfo.dir"
#define TTNAME_LEAF "ttname.dir"
@@ -470,10 +470,12 @@
raster->getFontExtent( &xfs->fe);
int used = (xfs->fe.bitmaps + xfs->fe.bmplen) - xfs->fe.buffer;
+ int bmpoff = xfs->fe.bitmaps - xfs->fe.buffer;
xfs->fe.buffer = (U8*)shrinkMem( xfs->fe.buffer, used);
- if( xfs->fe.buffer)
+ if( xfs->fe.buffer) {
xfs->fe.buflen = used;
- else {
+ xfs->fe.bitmaps = xfs->fe.buffer + bmpoff;
+ } else {
xfs->fid = 0; //###
xfs = 0;
}