Date: 13 Apr 2002 08:35:12 -0000 From: Yong-Jhen Hong <winard@ritax.dorm.ccu.edu.tw> To: FreeBSD-gnats-submit@FreeBSD.org Subject: misc/37034: Fixed maximum character length in EUC Message-ID: <20020413083512.90043.qmail@ritax.dorm.ccu.edu.tw>
next in thread | raw e-mail | index | archive | help
>Number: 37034 >Category: misc >Synopsis: Fixed maximum character length in EUC >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Apr 13 01:40:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Yong-Jhen Hong >Release: FreeBSD 4.5-STABLE i386 >Organization: N/A >Environment: System: FreeBSD ritax.dorm.ccu.edu.tw 4.5-STABLE FreeBSD 4.5-STABLE #0: Tue Mar 19 03:06:46 CST 2002 toor@ritax.dorm.ccu.edu.tw:/usr/obj/usr/src/sys/RITAX i386 >Description: The EUC rune-related functions use a fixed maximum character length, which forbids longer multibyte characters. >How-To-Repeat: Create a EUC encoding LC_CTYPE locale file which has codeset(s) longer than three bytes, use mbtowc(3) to convert such multibyte words. >Fix: Apply the following patch: --- patch-euc begins here --- --- euc.c Mon Jun 5 05:47:39 2000 +++ euc.c.new Thu Mar 28 15:19:02 2002 @@ -82,6 +82,7 @@ free(rl); return (ENOMEM); } + __mb_cur_max = 0; for (x = 0; x < 4; ++x) { ei->count[x] = (int) strtol(v, &e, 0); if (v == e || !(v = e)) { @@ -89,6 +90,8 @@ free(ei); return (EFTYPE); } + if (__mb_cur_max < ei->count[x]) + __mb_cur_max = ei->count[x]; while (*v == ' ' || *v == '\t') ++v; ei->bits[x] = (int) strtol(v, &e, 0); @@ -114,7 +117,6 @@ } rl->variable_len = sizeof(_EucInfo); _CurrentRuneLocale = rl; - __mb_cur_max = 3; return (0); } --- patch-euc ends here --- >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020413083512.90043.qmail>