diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | unix/tkUnixFont.c | 6 |
2 files changed, 8 insertions, 3 deletions
@@ -1,3 +1,8 @@ +2005-04-14 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tkUnixFont.c (FontMapLoadPage): reorder char[] decls to + avoid possible segv. Minimal fix for [Bug 1122671] + 2005-04-12 Jeff Hobbs <jeffh@ActiveState.com> * library/tkfbox.tcl (::tk::dialog::file::): fix typeMenuLab ref. diff --git a/unix/tkUnixFont.c b/unix/tkUnixFont.c index e004acb..34d814d 100644 --- a/unix/tkUnixFont.c +++ b/unix/tkUnixFont.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixFont.c,v 1.22 2004/01/13 02:06:01 davygrvy Exp $ + * RCS: @(#) $Id: tkUnixFont.c,v 1.23 2005/04/14 22:39:34 hobbs Exp $ */ #include "tkUnixInt.h" @@ -2054,7 +2054,7 @@ FontMapLoadPage(subFontPtr, row) int row; /* Index of the page to be loaded into * the cache. */ { - char src[TCL_UTF_MAX], buf[16]; + char buf[16], src[TCL_UTF_MAX]; int minHi, maxHi, minLo, maxLo, scale, checkLo; int i, end, bitOffset, isTwoByteFont, n; Tcl_Encoding encoding; @@ -2091,7 +2091,7 @@ FontMapLoadPage(subFontPtr, row) end = (row + 1) << FONTMAP_SHIFT; for (i = row << FONTMAP_SHIFT; i < end; i++) { int hi, lo; - + if (Tcl_UtfToExternal(NULL, encoding, src, Tcl_UniCharToUtf(i, src), TCL_ENCODING_STOPONERROR, NULL, buf, sizeof(buf), NULL, NULL, NULL) != TCL_OK) { |