Bug#636286: marked as done (eglibc: SIGSEGV in strcoll in UTF-8 locales with certain characters)

2020-08-21 Thread Debian Bug Tracking System
Your message dated Fri, 21 Aug 2020 20:42:48 + (UTC)
with message-id 
and subject line Re: Bug#636286: eglibc: SIGSEGV in strcoll in UTF-8 locales 
with certain characters
has caused the Debian Bug report #636286,
regarding eglibc: SIGSEGV in strcoll in UTF-8 locales with certain characters
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
636286: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=636286
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: eglibc
Version: 2.13-11
Severity: normal

(Only normal severity because this doesn't happen on i386)

root@aranym:~ # LC_ALL=C ./sfl; echo $?
1
root@aranym:~ # LC_ALL=CUT ./sfl; echo $?
sfl: setlocale: No such file or directory
4
root@aranym:~ # LC_ALL=C.UTF-8 ./sfl; echo $?
Segmentation fault
139

Works with no or a nonexistent locale, but not with
a UTF-8 locale. The problem was found in the code of
localechooser (a d-i component which runs sort over
native language lists at build).

Program received signal SIGSEGV, Segmentation fault.
0xc0094940 in findidx (s1=0x8556 " ব", s2=0x855b " ভ", l=0xc0145990) at 
../locale/weight.h:126
126   return indirect[-i + offset];
(gdb) bt
#0  0xc0094940 in findidx (s1=0x8556 " ব", s2=0x855b " ভ", 
l=0xc0145990) at ../locale/weight.h:126
#1  __strcoll_l (s1=0x8556 " ব", s2=0x855b " ভ", l=0xc0145990) at 
strcoll_l.c:213
#2  0xc008f960 in strcoll (s1=0x8556 " ব", s2=0x855b " ভ") at 
strcoll.c:37
#3  0x848e in main () at sfl.c:16
(gdb) print indirect
$1 = 
(gdb) print i
$2 = 
(gdb) print offset
$3 = 

I’ve got libc6-dbg installed, but it doesn’t seem to pick that
up, even with LD_LIBRARY_PATH=/usr/lib/debug/lib/m68k-linux-gnu
set. It does however load the symbols:

Reading symbols from /lib/m68k-linux-gnu/libc.so.6...Reading symbols from 
/usr/lib/debug/lib/m68k-linux-gnu/libc-2.13.so...done.   

I had to manually unpack and quilt push -a the source to get this
far, though. How am I supposed to use the libc6-dbg package then?

The error does NOT occur if the test programme is linked statically.

By preventing inlining and handcompiling strcoll_l.c with a
slightly adjusted (duplocale and __strcoll_l using) programme
I got this:

0x8796 in findidx (cpp=0xefbc0728) at ../locale/weight.h:126
126   return indirect[-i + offset];
(gdb) print cpp
$1 = (const unsigned char **) 0xefbc0728
(gdb) print *cpp
$2 = (const unsigned char *) 0x8000107c "\246\254"
(gdb) x/4xb *cpp
0x8000107c :  0xa60xac0x000x20
(gdb) print indirect
Cannot access memory at address 0xcda56b30
(gdb) print i
$3 = -1130053888
(gdb) print offset
$4 = 

Sorry, can’t debug this further.


https://wiki.debian.org/Aranym/Quick has an easy way to get a VM
image for testing.



-- System Information:
Debian Release: wheezy/sid
Architecture: m68k

Kernel: Linux 3.0.0-1-atari
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/mksh-static


--- End Message ---
--- Begin Message ---
John Paul Adrian Glaubitz dixit:

>Looks like the bug is no longer reproducible:

Thanks; in this case, we can close the bug.

bye,
//mirabilos
-- 
15:41⎜ Somebody write a testsuite for helloworld :-)--- End Message ---


Bug#636286: eglibc: SIGSEGV in strcoll in UTF-8 locales with certain characters

2020-08-21 Thread John Paul Adrian Glaubitz
Hi!

On 8/21/20 9:33 PM, John Paul Adrian Glaubitz wrote:
> Could you check whether this bugs still persists? It's probably been fixed
> long time ago, hasn't it?

Looks like the bug is no longer reproducible:

root@pacman:~# cat sfl.c
#include 
#include 
#include 
#include 

const char s1[] = { 0x20, 0xe0, 0xa6, 0xac, 0x00 };
const char s2[] = { 0x20, 0xe0, 0xa6, 0xad, 0x00 };

int
main(void)
{
int r;

if (setlocale(LC_ALL, "") == NULL)
err(4, "setlocale");
r = strcoll(s1, s2);
return (r < 0 ? 1 : r == 0 ? 2 : 3);
}

root@pacman:~# gcc -o sfl sfl.c
root@pacman:~# LC_ALL=C.UTF-8 ./sfl; echo $?
1
root@pacman:~#

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#636286: eglibc: SIGSEGV in strcoll in UTF-8 locales with certain characters

2020-08-21 Thread John Paul Adrian Glaubitz
User: debian-68klists.debian.org
Usertags: m68k
X-Debbugs-CC: debian-...@lists.debian.org

Hi Thorsten!

Could you check whether this bugs still persists? It's probably been fixed
long time ago, hasn't it?

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913