diff options
author | Steve Price <steve@FreeBSD.org> | 2000-07-07 16:22:34 +0000 |
---|---|---|
committer | Steve Price <steve@FreeBSD.org> | 2000-07-07 16:22:34 +0000 |
commit | dd9e75d1aa87705d97fce2e34224eff46fc48f5d (patch) | |
tree | fd9ad65f7fec69ef1a01d2c081fd6b724bc1a8d5 /x11-servers | |
parent | Location on MASTER_SITE changed. (diff) |
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>
Notes
Notes:
svn path=/head/; revision=30306
Diffstat (limited to 'x11-servers')
-rw-r--r-- | x11-servers/Xfstt/files/patch-ab | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/x11-servers/Xfstt/files/patch-ab b/x11-servers/Xfstt/files/patch-ab index fc6fe3b284b0..2e5d08f522eb 100644 --- a/x11-servers/Xfstt/files/patch-ab +++ b/x11-servers/Xfstt/files/patch-ab @@ -1,13 +1,28 @@ ---- xfstt.cpp.orig Fri Nov 5 00:49:57 1999 -+++ xfstt.cpp Mon Dec 6 17:01:54 1999 +--- 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 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; + } |