Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 7 Jun 2012 23:12:43 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: bug? sysinfo() and getopt_long() misbehavior

On Fri, Jun 08, 2012 at 12:51:48AM +0800, orc wrote:
> I have built a musl-enabled system and encountered some bugs:
> 
> - sysinfo() incorrectly works. The result is busybox' free misbehaving:

Thanks for the catch. Apparently the structure definition was bogus
and was not intended for direct use with the linux sysinfo syscall.
It's fixed in git.

> - (did not investigated properly) possible getopt_long() misbehavior, or
>   just miscompile. The result is that iptables and gnu sed misbehaving
>   at command line arguments:
> % sed -i '/test/d' ttnosuchfile
> sed: can't find label for jump to `tnosuchfile'

My GNU sed build does not exhibit this behavior. It's linked with an
older musl, but the getopt code has not changed. Is it possible you
did anything odd building musl (editing the makefile/cflags)? Does the
same happen if you static link sed? If your answers to these questions
suggest a problem in musl, I'll rebuild sed and see if I can reproduce
it.

> % sed '/test/d' -i ttnosuchfile
> sed: can't read -i: No such file or directory
> sed: can't read ttnosuchfile: No such file or directory

This is to be expected. Options must come before non-option arguments.
The glibc behavior to the contrary is broken and non-conformant.

> # iptables -vnL
> iptables v1.4.12.1: unknown arguments found on commandline
> Try `iptables -h' or 'iptables --help' for more information.
> # iptables --version
> iptables v1.4.12.1: unknown arguments found on commandline
> Try `iptables -h' or 'iptables --help' for more information.
> 
> Both sed and iptables were compiled with -D_GNU_SOURCE defined.
> 
> Unfortunately I don't actually know how to fix these two.

I'm suspecting something is broken with respect to dynamic linking...
Are you using an old version of binutils? Did you remove or replace
-Bsymbolic-functions with something else?

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.