wrong usages of sem_open in the libFuzzer
authorKamil Rytarowski <n54@gmx.com>
Thu, 10 May 2018 17:31:06 +0000 (17:31 +0000)
committerKamil Rytarowski <n54@gmx.com>
Thu, 10 May 2018 17:31:06 +0000 (17:31 +0000)
commitaee7b0f20921d12916f6a46ad182f83d727dc9fd
tree428ac07742dfffeaf1f10d599281dd4919e1a9dd
parent37fbb7f173b7edd1cf3baff84111fe2a5a76cfcb
wrong usages of sem_open in the libFuzzer

Summary:
Fixed two non-standard usages of sem_open in the libFuzzer library and
one NetBSD-related modification with test script.

  - The return value to indicate error should be SEM_FAILED instead of
    (void *)-1 (please refer to "RETURN VALUE" section in this [[
    http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_open.html
    | page ]]). Actually, SEM_FAILED != (void *)-1 holds in NetBSD.

  - The SharedMemoryRegion::SemName function should return name
    starting with slash. Because the behaviour of name which does not
    start with slash is unspecified as the [[
    http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_open.html
    | "DESCRIPTION" section ]] specified:

> If name does not begin with the <slash> character, the effect is implementation-defined.

  - The length of name is limited to 14 in NetBSD, it is suggested to
    reduce the length of equivalence server name in the test script.

Patch by: Yang Zheng

Reviewers: vitalybuka, krytarowski, kcc

Reviewed By: kcc

Subscribers: kcc, #sanitizers, llvm-commits, joerg

Differential Revision: https://reviews.llvm.org/D46622

llvm-svn: 332003
compiler-rt/lib/fuzzer/FuzzerShmemPosix.cpp
compiler-rt/test/fuzzer/equivalence-signals.test