sort -t handling with MB_CUR_MAX > 1 is very broken in several ways. One problem shows up e.g. in LSB 1.3 testsuite on big endian platforms, where 10|567 /tset/LI18NUX2K.L1/utils/sort/sort 18:32:15|TC Start, scenario ref 571-0 520|567 8 23535 1 1|* When -t option is specified, verify this utility use a character as a field separator even if the character is a multibyte character. 520|567 8 23535 1 2| 520|567 8 23535 1 3|Can't handle field separator written in a multibyte chaaracter. 220|567 8 1 18:32:21|FAIL 520|567 24 23535 1 1|* When -c and -t option are specified, verify this utility use a character as a field separator even if the character is a multibyte character. 520|567 24 23535 1 2| 520|567 24 23535 1 3|Can't handle field separator written in a multibyte chaaracter. 220|567 24 1 18:32:29|FAIL 520|567 40 23535 1 1|* When -m and -t option are specified, verify this utility use a character as a field separator even if the character is a multibyte character. 520|567 40 23535 1 2| 520|567 40 23535 1 3|Can't handle field separator written in a multibyte chaaracter. 220|567 40 1 18:32:36|FAIL But as shown in the attached testcase, it is not just big endian platforms that have -t broken. I wonder why this was missed during RHEL3 LSB testing.
Created attachment 110864 [details] Patch to fix the bug
Affects FC3/FC4 as well and likely (but untested) RHEL3 too.
*** Bug 147568 has been marked as a duplicate of this bug. ***
Thanks. 5.2.1-41 built in devel.
Committed to CVS in RHEL-4.
While porting to RHEL-3 I found that the sort-mb-tests already pass without any changes to sort.c, beyond what's already in CVS.
Looking at RHEL3 coreutils-i18n.patch this is no wonder to me. +static unsigned char tab[MB_LEN_MAX + 1]; tab has been a char array, not int as in RHEL4, etc. From what I can see, RHEL4 sort against RHEL3 sort (in both cases without i18n patch) added -t '\0' handling and error for -t a -t b and the former caused int tab;.
Can this be put in modified?
No, it hasn't been built for RHEL4. Should it be built for RHEL4? If so, targetting which update release?
update 1, since we are targetting LSB compliance with that update.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2005-194.html