Files
hakmem/core/box/madvise_guard_box.h

23 lines
935 B
C
Raw Normal View History

// madvise_guard_box.h - Box: Safe madvise wrapper with DSO guard
// Responsibility: guard madvise() against DSO/text pointers and handle ENOMEM once
// Controls: HAKMEM_SS_MADVISE_GUARD (default: on), HAKMEM_SS_MADVISE_GUARD_QUIET
#ifndef HAKMEM_MADVISE_GUARD_BOX_H
#define HAKMEM_MADVISE_GUARD_BOX_H
#include <stddef.h>
// Returns 1 when guard is enabled (default), 0 when disabled via env.
int ss_madvise_guard_enabled(void);
// Returns 1 when guard logging is silenced (HAKMEM_SS_MADVISE_GUARD_QUIET != 0).
int ss_madvise_guard_quiet_logs(void);
// Guarded madvise:
// - Skips DSO/text addresses (dladdr hit) to avoid touching .fini_array
// - ENOMEM: disables future madvise calls (soft fail)
// - EINVAL: returns -1 so caller can honor STRICT mode
// - Other errors: increments counters, returns 0
int ss_os_madvise_guarded(void* ptr, size_t len, int advice, const char* where);
#endif // HAKMEM_MADVISE_GUARD_BOX_H