Changeset View
Changeset View
Standalone View
Standalone View
test/scudo/overflow.c
// RUN: %clang_scudo %s -o %t | // RUN: %clang_scudo %s -o %t | ||||
// RUN: not %run %t malloc 2>&1 | FileCheck %s | // RUN: not %run %t malloc 2>&1 | FileCheck %s | ||||
// RUN: %env_scudo_opts=QuarantineSizeKb=64 not %run %t quarantine 2>&1 | FileCheck %s | // RUN: %env_scudo_opts=QuarantineSizeKb=64 not %run %t quarantine 2>&1 | FileCheck %s | ||||
// Tests that header corruption of an allocated or quarantined chunk is caught. | // Tests that header corruption of an allocated or quarantined chunk is caught. | ||||
#include <assert.h> | #include <assert.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
#if defined(_MSC_VER) | |||||
#include <BaseTsd.h> | |||||
typedef SSIZE_T ssize_t; | |||||
#endif | |||||
int main(int argc, char **argv) | int main(int argc, char **argv) | ||||
{ | { | ||||
ssize_t offset = sizeof(void *) == 8 ? 8 : 0; | ssize_t offset = sizeof(void *) == 8 ? 8 : 0; | ||||
assert(argc == 2); | assert(argc == 2); | ||||
if (!strcmp(argv[1], "malloc")) { | if (!strcmp(argv[1], "malloc")) { | ||||
// Simulate a header corruption of an allocated chunk (1-bit) | // Simulate a header corruption of an allocated chunk (1-bit) | ||||
Show All 21 Lines |