Package: mlterm-im-uim
Version: 2.9.4-4
Severity: important
I can't type internationalized text on mlterm using uim with this
package. It fails at initialization time: e.g.
[EMAIL PROTECTED] /dvl/debian/mlterm/mlterm-2.9.4
$ mlterm
*** ERROR HAPPEND *** <garbage>: No such conversion engine.
*** ERROR HAPPEND *** uim: Could not open.
where I replaced garbage with <garbage> to avoid non-ASCII characters.
This is 100% repeatable on my computer, but it may not be on others.
Reproducibility may be affected by libuim version and heap size
parameter for uim.
This is caused by an incorrect usage of a uim API in
inputmethods/uim/im_uim.c, im_uim_new(). The problem occurs if a
string returned by uim gets freed (GC'd) prematurely within uim, in
which case mlterm dereferences invalidated region of memory. The
patch solves this by duplicating the string before use.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=EUC-JP) (ignored:
LC_ALL set to ja_JP.eucJP)
Shell: /bin/sh linked to /bin/dash
Versions of packages mlterm-im-uim depends on:
ii libc6 2.7-16 GNU C Library: Shared libraries
ii libuim6 1:1.5.3-1 Simple and flexible input method c
ii mlterm 2.9.4-4 MultiLingual TERMinal
mlterm-im-uim recommends no packages.
mlterm-im-uim suggests no packages.
-- no debconf information
===File /dvl/debian/mlterm/engine-for-debian.diff===========
--- ../orig/inputmethod/uim/im_uim.c 2006-04-05 05:47:22.000000000 -0500
+++ inputmethod/uim/im_uim.c 2008-11-22 20:12:04.000000000 -0600
@@ -1512,6 +1512,9 @@
if( engine == NULL || strlen( engine) == 0)
{
engine = (char*)uim_get_default_im_name( kik_get_locale()) ;
+ /* The returned string's storage is invalidated when we
+ * call uim next, so we need to make a copy. */
+ engine = kik_str_alloca_dup (engine);
}
if( ! find_engine( engine , &encoding_name))
============================================================
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]