
Summary: This patch adds the initial support for Fuchsia. - LIBFUZZER_FUCHSIA is added as an OS type in FuzzerDefs.h - Fuchsia is, by design, not POSIX compliant. However, it does use ELF and supports common POSIX I/O functions. Thus, FuzzerExtFunctions.h and FuzzerIO.h are implemented by extending the header guards in FuzzerExtFunctionsWeak.cpp and FuzzerIOPosix.cpp to include LIBFUZZER_FUCHSIA. - The platform-specific portions of FuzzerUtil.h are implemented by FuzzerUtilFuchsia.cpp, which makes use of exception ports, syscalls, and the launchpad library. - The experimental equivalence server is not currently supported, so FuzzerShmem.h is implemented by stub methods in FuzzerShmemFuchsia.cpp. Any future implementation will likely involve VMOs. Tested with ASAN/SanCov on Fuchsia/x86-64 with the canonical toy fuzzer. Patch By: aarongreen Reviewers: kcc, morehouse, flowerhack, phosek Reviewed By: kcc, phosek, Eugene.Zelenko Subscribers: srhines, mgorny, Eugene.Zelenko Differential Revision: https://reviews.llvm.org/D40974 llvm-svn: 320210
39 lines
978 B
C++
39 lines
978 B
C++
//===- FuzzerShmemPosix.cpp - Posix shared memory ---------------*- C++ -* ===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
// SharedMemoryRegion. For Fuchsia, this is just stubs as equivalence servers
|
|
// are not currently supported.
|
|
//===----------------------------------------------------------------------===//
|
|
#include "FuzzerDefs.h"
|
|
|
|
#if LIBFUZZER_FUCHSIA
|
|
|
|
#include "FuzzerShmem.h"
|
|
|
|
namespace fuzzer {
|
|
|
|
bool SharedMemoryRegion::Create(const char *Name) {
|
|
return false;
|
|
}
|
|
|
|
bool SharedMemoryRegion::Open(const char *Name) {
|
|
return false;
|
|
}
|
|
|
|
bool SharedMemoryRegion::Destroy(const char *Name) {
|
|
return false;
|
|
}
|
|
|
|
void SharedMemoryRegion::Post(int Idx) {}
|
|
|
|
void SharedMemoryRegion::Wait(int Idx) {}
|
|
|
|
} // namespace fuzzer
|
|
|
|
#endif // LIBFUZZER_FUCHSIA
|