
Summary: The current `FailureHandler` mechanism was fairly opaque with regard to the failure reason due to using `CHECK(0)`. Scudo is a bit different from the other Sanitizers as it prefers to avoid spurious processing in its failure path. So we just `dieWithMessage` using a somewhat explicit string. Adapted the tests for the new strings. While this takes care of the `OnBadRequest` & `OnOOM` failures, the next step is probably to migrate the other Scudo failures in the same failes (header corruption, invalid state and so on). Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: filcab, mgorny, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D48199 llvm-svn: 334843
36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
//===-- scudo_errors.h ------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// Header for scudo_errors.cpp.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SCUDO_ERRORS_H_
|
|
#define SCUDO_ERRORS_H_
|
|
|
|
#include "sanitizer_common/sanitizer_internal_defs.h"
|
|
|
|
namespace __scudo {
|
|
|
|
void NORETURN reportCallocOverflow(uptr Count, uptr Size);
|
|
void NORETURN reportPvallocOverflow(uptr Size);
|
|
void NORETURN reportAllocationAlignmentTooBig(uptr Alignment,
|
|
uptr MaxAlignment);
|
|
void NORETURN reportAllocationAlignmentNotPowerOfTwo(uptr Alignment);
|
|
void NORETURN reportInvalidPosixMemalignAlignment(uptr Alignment);
|
|
void NORETURN reportInvalidAlignedAllocAlignment(uptr Size, uptr Alignment);
|
|
void NORETURN reportAllocationSizeTooBig(uptr UserSize, uptr TotalSize,
|
|
uptr MaxSize);
|
|
void NORETURN reportRssLimitExceeded();
|
|
void NORETURN reportOutOfMemory(uptr RequestedSize);
|
|
|
|
} // namespace __scudo
|
|
|
|
#endif // SCUDO_ERRORS_H_
|