SIGSEGV in localedef on "<" as negative_sign in LC_MONETARY -----------------------------------------------------------
Key: STDCXX-370 URL: https://issues.apache.org/jira/browse/STDCXX-370 Project: C++ Standard Library Issue Type: Bug Components: Utilities Affects Versions: 4.1.3 Reporter: Martin Sebor The following made up LC_MONETARY section causes localedef to die with a SIGSEGV: $ cat foo.src && ./localedef -w -c -f /nfs/devco/sebor/stdcxx/etc/nls/charmaps/ISO-8859-1 -i foo.src foo || gdb -q ./localedef LC_MONETARY int_curr_symbol "ABCD" currency_symbol "klmn" mon_decimal_point "@" mon_thousands_sep "|" mon_grouping 5 positive_sign "<" negative_sign ">" int_frac_digits 6 frac_digits 7 p_cs_precedes 1 p_sep_by_space 1 n_cs_precedes 1 n_sep_by_space 1 p_sign_posn 1 n_sign_posn 2 END LC_MONETARY Segmentation fault Using host libthread_db library "/lib64/tls/libthread_db.so.1". (gdb) run -w -c -f /nfs/devco/sebor/stdcxx/etc/nls/charmaps/ISO-8859-1 -i foo.src foo Starting program: /build/sebor/stdcxx-gcc-3.4.6-11S/bin/localedef -w -c -f /nfs/devco/sebor/stdcxx/etc/nls/charmaps/ISO-8859-1 -i foo.src foo Detaching after fork from child process 28327. Program received signal SIGSEGV, Segmentation fault. 0x00000000004496a8 in Def::convert_string (this=0x7fbfffdda0, [EMAIL PROTECTED]) at /amd/devco/sebor/stdcxx/util/def.cpp:286 286 while (str[idx] != '>') { (gdb) where #0 0x00000000004496a8 in Def::convert_string (this=0x7fbfffdda0, [EMAIL PROTECTED]) at /amd/devco/sebor/stdcxx/util/def.cpp:286 #1 0x000000000045c5d3 in Def::process_monetary (this=0x7fbfffdda0) at /amd/devco/sebor/stdcxx/util/monetary.cpp:142 #2 0x000000000044a13a in Def::process_input (this=0x7fbfffdda0) at /amd/devco/sebor/stdcxx/util/def.cpp:502 #3 0x0000000000403c07 in create_locale (std_src= {<std::allocator<char>> = {<No data fields>}, static npos = 18446744073709551615, static _C_null_ref = {<__rw::__string_ref<char,std::char_traits<char>,std::allocator<char> >> = {_C_refs = 0, _C_cap = 0, _C_size = {_C_size = 0, _C_dummy = 0 '\0'}}, _C_eos = 0 '\0'}, _C_data = 0x6a1608 "foo.src"}, std_cmap= {<std::allocator<char>> = {<No data fields>}, static npos = 18446744073709551615, static _C_null_ref = {<__rw::__string_ref<char,std::char_traits<char>,std::allocator<char> >> = {_C_refs = 0, _C_cap = 0, _C_size = {_C_size = 0, _C_dummy = 0 '\0'}}, _C_eos = 0 '\0'}, _C_data = 0x6a15a8 "/nfs/devco/sebor/stdcxx/etc/nls/charmaps/ISO-8859-1"}, outdir= {<std::allocator<char>> = {<No data fields>}, static npos = 18446744073709551615, static _C_null_ref = {<__rw::__string_ref<char,std::char_traits<char>,std::allocator<char> >> = {_C_refs = 0, _C_cap = 0, _C_size = {_C_size = 0, _C_dummy = 0 '\0'}}, _C_eos = 0 '\0'}, _C_data = 0x68e378 ""}, std_locale= {<std::allocator<char>> = {<No data fields>}, static npos = 18446744073709551615, static _C_null_ref = {<__rw::__string_ref<char,std::char_traits<char>,std::allocator<char> >> = {_C_refs = 0, _C_cap = 0, _C_size = {_C_size = 0, _C_dummy = 0 '\0'}}, _C_eos = 0 '\0'}, _C_data = 0x6a1558 "foo"}, force_output=true, use_ucs=false, no_position=false, link_aliases=false) at /amd/devco/sebor/stdcxx/util/localedef.cpp:210 #4 0x000000000040574f in main (argc=8, argv=0x7fbffff578) at /amd/devco/sebor/stdcxx/util/localedef.cpp:558 -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.