mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 19:08:08 +00:00
support post_process's own return buffer
This commit is contained in:
@ -163,34 +163,36 @@ u8 *afl_shm_init(sharedmem_t *shm, size_t map_size,
|
||||
so we do this worse workaround */
|
||||
snprintf(shm->g_shm_file_path, L_tmpnam, "/afl_%d_%ld", getpid(), random());
|
||||
|
||||
#ifdef SHM_LARGEPAGE_ALLOC_DEFAULT
|
||||
/* trying to get large memory segment optimised and monitorable separately as such */
|
||||
#ifdef SHM_LARGEPAGE_ALLOC_DEFAULT
|
||||
/* trying to get large memory segment optimised and monitorable separately as
|
||||
* such */
|
||||
static size_t sizes[4] = {(size_t)-1};
|
||||
static int psizes = 0;
|
||||
int i;
|
||||
static int psizes = 0;
|
||||
int i;
|
||||
if (sizes[0] == (size_t)-1) { psizes = getpagesizes(sizes, 4); }
|
||||
|
||||
/* very unlikely to fail even if the arch supports only two sizes */
|
||||
if (likely(psizes > 0)) {
|
||||
|
||||
for (i = psizes - 1; shm->g_shm_fd == -1 && i >= 0; --i) {
|
||||
for (i = psizes - 1; shm->g_shm_fd == -1 && i >= 0; --i) {
|
||||
|
||||
if (sizes[i] == 0 || map_size % sizes[i]) { continue; }
|
||||
if (sizes[i] == 0 || map_size % sizes[i]) { continue; }
|
||||
|
||||
shm->g_shm_fd = shm_create_largepage(shm->g_shm_file_path, shmflags, i,
|
||||
SHM_LARGEPAGE_ALLOC_DEFAULT, DEFAULT_PERMISSION);
|
||||
shm->g_shm_fd =
|
||||
shm_create_largepage(shm->g_shm_file_path, shmflags, i,
|
||||
SHM_LARGEPAGE_ALLOC_DEFAULT, DEFAULT_PERMISSION);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* create the shared memory segment as if it was a file */
|
||||
if (shm->g_shm_fd == -1) {
|
||||
|
||||
shm->g_shm_fd = shm_open(shm->g_shm_file_path, shmflags | O_CREAT,
|
||||
DEFAULT_PERMISSION);
|
||||
shm->g_shm_fd =
|
||||
shm_open(shm->g_shm_file_path, shmflags | O_CREAT, DEFAULT_PERMISSION);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user