Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110713133838.GA16618@brightrain.aerifal.cx>
Date: Wed, 13 Jul 2011 09:38:38 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: cluts review

On Wed, Jul 13, 2011 at 03:07:23PM +0400, Solar Designer wrote:
> The uses of SA_NODEFER appeared to be a bug anyway, so I am simply
> removing them.

It's not a bug. The bug is just that Luka is relying on glibc's
practice of defining everything by default. Since the tests are
testing a POSIX environment, -D_POSIX_C_SOURCE=200809L (or even
-D_XOPEN_SOURCE=700) should be in the CFLAGS.

> -std=c99 appears to be needed to get LLONG_MAX, etc. defined by glibc's
> header files when compiling with older gcc (I used 3.4.5).

Defining the right feature test macros would also fix this, but it's
good to have -std=c99 anyway.

> +#define _BSD_SOURCE /* for scandir() and alphasort() */

These are POSIX 2008 functions. _BSD_SOURCE should not be needed for
anything.

> +#include <sys/param.h> /* for PATH_MAX */

This is a classic error I fought with all the time early in musl's
life cycle - it's absolutely the wrong fix. sys/param.h is completely
nonstandard. PATH_MAX comes from limits.h, as long as you have the
proper feature test macros defined, but it might not be defined, in
which case you have to use sysconf/pathconf. That could still come
back as "no limit" though, in which case security for functions which
need a PATH_MAX-sized buffer is broken...

> +#define _XOPEN_SOURCE /* for sigaction() */

Needs a value, not a blank definition. Current version is 700.

> -    act.sa_flags   = SA_NODEFER;
> +    act.sa_flags   = 0;

This was being used as part of the longjmp trick.

By the way, there are a lot of warnings about local vars potentially
clobbered by longjmp. Those are worth checking out. I found gcc was
pretty strict about breaking my code in the dynamic linker when I
broke the rules for longjmp...

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.