mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 22:22:00 +00:00
6db73152d2
* Hardening debug build: more granular memory mappings and ASLR; add memory protection for mark cache and index * Addition to prev. revision * Addition to prev. revision * Addition to prev. revision
51 lines
925 B
C++
51 lines
925 B
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <sys/types.h>
|
|
#if !defined(_MSC_VER)
|
|
#include <sys/mman.h>
|
|
#endif
|
|
|
|
#if defined(MREMAP_MAYMOVE)
|
|
// we already have implementation (linux)
|
|
#else
|
|
|
|
#define MREMAP_MAYMOVE 1
|
|
|
|
void * mremap(
|
|
void * old_address,
|
|
size_t old_size,
|
|
size_t new_size,
|
|
int flags = 0,
|
|
int mmap_prot = 0,
|
|
int mmap_flags = 0,
|
|
int mmap_fd = -1,
|
|
off_t mmap_offset = 0);
|
|
|
|
#endif
|
|
|
|
inline void * clickhouse_mremap(
|
|
void * old_address,
|
|
size_t old_size,
|
|
size_t new_size,
|
|
int flags = 0,
|
|
[[maybe_unused]] int mmap_prot = 0,
|
|
[[maybe_unused]] int mmap_flags = 0,
|
|
[[maybe_unused]] int mmap_fd = -1,
|
|
[[maybe_unused]] off_t mmap_offset = 0)
|
|
{
|
|
return mremap(
|
|
old_address,
|
|
old_size,
|
|
new_size,
|
|
flags
|
|
#if !defined(MREMAP_FIXED)
|
|
,
|
|
mmap_prot,
|
|
mmap_flags,
|
|
mmap_fd,
|
|
mmap_offset
|
|
#endif
|
|
);
|
|
}
|