When libiconv fail text conversion, it may run into endless loop (not always). The problem is caused by libiconv's odd error handling. There is some program points where error code is silently changed, RET_ILUNI to RET_TOOSMALL. Since RET_TOOSMALL means no sufficient buffer memory, libiconv try to enlarge buffer and retry conversion. Because of this nature, silently changed error code causes endless loop of (enlarge buffer -> retry). Fix: Although I met the problem when I make security/gpgme, the actual problem is in converters/libiconv. Here is a patch to fix libiconv. I'm sorry to paste it from send-pr's web interface, I know it breaks patch ;-<. How-To-Repeat: 1. setenv LANG ja_JP.eucJP 2. cd /usr/ports/gpgme 3. make It may be a locale dependent problem and I only know it appears when I set LANG=ja_JP.eucJP.
State Changed From-To: open->analyzed over to gnome maintiner.
Responsible Changed From-To: freebsd-ports->gnome over to gnome maintiner.
On Sun, 28 Apr 2002 14:40:20 -0700 (PDT) Fuyuhiko Maruyama <fuyuhik8@is.titech.ac.jp> wrote: > Here is a patch to fix libiconv. > I'm sorry to paste it from send-pr's web interface, I know > it breaks patch ;-<. I tested. This patch is OK.
State Changed From-To: analyzed->closed Committed, thanks!