brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 432f6a0 Raw
56 lines · cpp
1//===-- report_linux.cpp ----------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "platform.h"10 11#if SCUDO_LINUX || SCUDO_TRUSTY12 13#include "common.h"14#include "internal_defs.h"15#include "report.h"16#include "report_linux.h"17#include "string_utils.h"18 19#include <errno.h>20#include <stdlib.h>21#include <string.h>22 23namespace scudo {24 25// Fatal internal map() error (potentially OOM related).26void NORETURN reportMapError(uptr SizeIfOOM) {27  ScopedString Error;28  Error.append("Scudo ERROR: internal map failure (error desc=%s)",29               strerror(errno));30  if (SizeIfOOM)31    Error.append(" requesting %zuKB", SizeIfOOM >> 10);32  Error.append("\n");33  reportRawError(Error.data());34}35 36void NORETURN reportUnmapError(uptr Addr, uptr Size) {37  ScopedString Error;38  Error.append("Scudo ERROR: internal unmap failure (error desc=%s) Addr 0x%zx "39               "Size %zu\n",40               strerror(errno), Addr, Size);41  reportRawError(Error.data());42}43 44void NORETURN reportProtectError(uptr Addr, uptr Size, int Prot) {45  ScopedString Error;46  Error.append(47      "Scudo ERROR: internal protect failure (error desc=%s) Addr 0x%zx "48      "Size %zu Prot %x\n",49      strerror(errno), Addr, Size, Prot);50  reportRawError(Error.data());51}52 53} // namespace scudo54 55#endif // SCUDO_LINUX || SCUDO_TRUSTY56