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.