executor: make errors during thread creation exit zero

On OpenBSD, the executor sometimes manages to set the memory resource
limit 0 causing any following memory allocation to fail. Since threads
are potentially created from such a thread which cannot allocate any
memory, the executor will exit non-zero which in turn will cause
false-positive panics to be reported. For more info see the
discussion[1] in PR #1243.

Instead, if hitting a fatal error during thread creation exit zero.

[1] https://github.com/google/syzkaller/pull/1243
This commit is contained in:
Anton Lindqvist 2019-07-02 23:10:02 +02:00 committed by Dmitry Vyukov
parent deef5fbc83
commit 429efa16d6
2 changed files with 4 additions and 4 deletions

View File

@ -281,9 +281,9 @@ typedef struct {
static void event_init(event_t* ev)
{
if (pthread_mutex_init(&ev->mu, 0))
fail("pthread_mutex_init failed");
exitf("pthread_mutex_init failed");
if (pthread_cond_init(&ev->cv, 0))
fail("pthread_cond_init failed");
exitf("pthread_cond_init failed");
ev->state = 0;
}

View File

@ -263,9 +263,9 @@ typedef struct {
static void event_init(event_t* ev)
{
if (pthread_mutex_init(&ev->mu, 0))
fail("pthread_mutex_init failed");
exitf("pthread_mutex_init failed");
if (pthread_cond_init(&ev->cv, 0))
fail("pthread_cond_init failed");
exitf("pthread_cond_init failed");
ev->state = 0;
}