Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 24 Apr 2013 09:32:13 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: cluts test suite with musl

On Wed, Apr 24, 2013 at 03:26:57PM +0300, Timerlan Moldobaev wrote:
> Thanks !
> 
> I applied the patch. Still have some tests failing.
> 
> For instance tests/buf fails with the following error message:
> 
> iconv(&<"abcd">, &<4>, &s, &<3>) caused a SIGSEGV!
> 
> I am not sure but  it seems that iconv()  that is called from wrap_iconv()
> should return  an error return value and set an errno value.
> At least to my understanding  that the way the test is written.
> For musl implementation of iconv()  returns 0 and sets no errno.
> 
> While in the case of standard Linux implementation, errno = E2BIG and -1
> returned ( error return value) .
> 
> For the case buf linked dynamically against the standard libc.so library:
> 
>  ldd tests/buf
>         libpthread.so.0 => /lib64/libpthread.so.0 (0x00000030d1000000)
>         librt.so.1 => /lib64/librt.so.1 (0x00000030d4400000)
>         libm.so.6 => /lib64/libm.so.6 (0x00000030d0800000)
>         libc.so.6 => /lib64/libc.so.6 (0x00000030d0400000)
>         /lib64/ld-linux-x86-64.so.2 (0x00000030cf400000)
> 
> > uname -a
> Linux lnxbdc96 2.6.18-164.11.1.el5 #1 SMP Wed Jan 6 13:26:04 EST 2010
> x86_64 x86_64 x86_64 GNU/Linux
> 
> Can you please look into this ?

Yes, the test is invoking undefined behavior by failing to check the
return value of iconv_open and passing an invalid conversion
descriptor ((iconv_t)-1) to iconv. I don't know why it's crashing for
you but not me; probably a difference from being 64-bit vs 32-bit
affecting the way the bits of the conversion descriptor are handled.

Apparently the test was written based on GNU documentation that allows
"" as an alias for the current locale's encoding. This usage is
non-portable, but may be something we should add to musl.
nl_langinfo(CODESET) is the portable way to get this.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.