id summary reporter owner description type status priority milestone component version resolution keywords cc blockedby blocking platform 13184 Infinite loop with bash/readline/ICU on non-BMP Unicode characters jessicah pulkomandy "When trying to cd into a directory with characters outside of the Unicode Basic Multilingual Plane, it triggers an infinite loop parsing the characters. I've tested the same on Ubuntu, which handles the characters fine. Note that they're not printable without a suitable font, but Haiku should still handle them correctly irregardless. {{{ thread 835: bash (main) state: Debugged Frame IP Function Name ----------------------------------------------- 0x7f5cf19f9fe0 0x12d46e62700 ucnv_toUnicode_57 + 0x60 Disassembly: ucnv_toUnicode_57: 0x0000012d46e626a0: 55 push %rbp 0x0000012d46e626a1: 4889e5 mov %rsp, %rbp 0x0000012d46e626a4: 4157 push %r15 0x0000012d46e626a6: 4156 push %r14 0x0000012d46e626a8: 4155 push %r13 0x0000012d46e626aa: 4154 push %r12 0x0000012d46e626ac: 53 push %rbx 0x0000012d46e626ad: 4883ec68 sub $0x68, %rsp 0x0000012d46e626b1: 488b5d18 mov 0x18(%rbp), %rbx 0x0000012d46e626b5: 4c894d88 mov %r9, -0x78(%rbp) 0x0000012d46e626b9: 448b4d10 mov 0x10(%rbp), %r9d 0x0000012d46e626bd: 4885db test %rbx, %rbx 0x0000012d46e626c0: 7408 jz 0x46e626ca 0x0000012d46e626c2: 448b13 mov (%rbx), %r10d 0x0000012d46e626c5: 4585d2 test %r10d, %r10d 0x0000012d46e626c8: 7e16 jle 0x46e626e0 0x0000012d46e626ca: 4883c468 add $0x68, %rsp 0x0000012d46e626ce: 5b pop %rbx 0x0000012d46e626cf: 415c pop %r12 0x0000012d46e626d1: 415d pop %r13 0x0000012d46e626d3: 415e pop %r14 0x0000012d46e626d5: 415f pop %r15 0x0000012d46e626d7: 5d pop %rbp 0x0000012d46e626d8: c3 ret 0x0000012d46e626d9: 0f1f8000000000 nop (%rax) 0x0000012d46e626e0: 4885f6 test %rsi, %rsi 0x0000012d46e626e3: 4989d4 mov %rdx, %r12 0x0000012d46e626e6: 4989f5 mov %rsi, %r13 0x0000012d46e626e9: 0f94c2 setz %dl 0x0000012d46e626ec: 4885c9 test %rcx, %rcx 0x0000012d46e626ef: 4989ce mov %rcx, %r14 0x0000012d46e626f2: 0f94c0 setz %al 0x0000012d46e626f5: 08c2 or %al, %dl 0x0000012d46e626f7: 0f8533010000 jnz 0x12d46e62830 0x0000012d46e626fd: 4885ff test %rdi, %rdi 0x0000012d46e62700: 4989ff mov %rdi, %r15 <-- Frame memory: [0x7f5cf19f9f40] ........c..'.... 00 00 00 00 00 00 00 00 63 04 a8 27 80 01 00 00 [0x7f5cf19f9f50] ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [0x7f5cf19f9f60] 8...\.......\... 38 00 00 f1 5c 7f 00 00 a0 a1 9f f1 5c 7f 00 00 [0x7f5cf19f9f70] ..6}......6}.... a1 dc 36 7d 00 02 00 00 c2 dc 36 7d 00 02 00 00 [0x7f5cf19f9f80] ....\...E..'.... e0 9f 9f f1 5c 7f 00 00 45 13 a8 27 80 01 00 00 [0x7f5cf19f9f90] ........(...\... 00 00 00 00 00 00 00 00 28 a0 9f f1 5c 7f 00 00 [0x7f5cf19f9fa0] ........P...\... 08 04 00 00 00 00 00 00 50 a1 9f f1 5c 7f 00 00 [0x7f5cf19f9fb0] ..6}....8.9}.... a1 dc 36 7d 00 02 00 00 38 c9 39 7d 00 02 00 00 [0x7f5cf19f9fc0] ....\........... 10 a0 9f f1 5c 7f 00 00 00 00 00 00 00 00 00 00 [0x7f5cf19f9fd0] `...\......'.... 60 a0 9f f1 5c 7f 00 00 8c 14 a8 27 80 01 00 00 0x7f5cf19fa070 0x18027a81487 BPrivate::Libroot::ICUCtypeData::MultibyteToWchar(wchar_t*, char const*, unsigned long, mbstate_t*, unsigned long&) + 0x79 0x7f5cf19fa0c0 0x18027a821b9 BPrivate::Libroot::ICULocaleBackend::MultibyteToWchar(wchar_t*, char const*, unsigned long, mbstate_t*, unsigned long&) + 0x45 0x7f5cf19fa0e0 0x8eb226e146 mbrtowc + 0xd9 0x7f5cf19fa0f0 0x8eb226e066 __mbrlen + 0x20 0x7f5cf19fa130 0x1a3cd01ac07 _rl_adjust_point(char*, int, mbstate_t*) + 0x61 (../mbutil.c:-1) }}}" bug closed normal Unscheduled Kits/Locale Kit R1/Development fixed All