diff options
author | Andrea Fioraldi <andreafioraldi@gmail.com> | 2020-04-08 09:36:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-08 09:36:04 +0200 |
commit | 63cc113f12d4e2b83ee13e5b1fdc238cadd2ca02 (patch) | |
tree | fd8df6589037840849392f953020c7ba8ef4b493 /include/snapshot-inl.h | |
parent | 3bf88da0912118820bce06fabc1de590364cfcdc (diff) | |
parent | 5b160f187d4861297174192497fd6971d6e8e535 (diff) | |
download | afl++-63cc113f12d4e2b83ee13e5b1fdc238cadd2ca02.tar.gz |
Merge pull request #298 from AFLplusplus/snapshot
Snapshot for LLVM mode in dev
Diffstat (limited to 'include/snapshot-inl.h')
-rw-r--r-- | include/snapshot-inl.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/include/snapshot-inl.h b/include/snapshot-inl.h new file mode 100644 index 00000000..b73a001e --- /dev/null +++ b/include/snapshot-inl.h @@ -0,0 +1,59 @@ +/* + american fuzzy lop++ - snapshot helpers routines + ------------------------------------------------ + + Originally written by Michal Zalewski + + Forkserver design by Jann Horn <jannhorn@googlemail.com> + + Now maintained by Marc Heuse <mh@mh-sec.de>, + Heiko Eißfeldt <heiko.eissfeldt@hexco.de>, + Andrea Fioraldi <andreafioraldi@gmail.com>, + Dominik Maier <mail@dmnk.co> + + Copyright 2016, 2017 Google Inc. All rights reserved. + Copyright 2019-2020 AFLplusplus Project. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + */ + +// From AFL-Snapshot-LKM/include/afl_snapshot.h (must be kept synced) + +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#define AFL_SNAPSHOT_FILE_NAME "/dev/afl_snapshot" + +#define AFL_SNAPSHOT_IOCTL_MAGIC 44313 + +#define AFL_SNAPSHOT_IOCTL_DO _IO(AFL_SNAPSHOT_IOCTL_MAGIC, 1) +#define AFL_SNAPSHOT_IOCTL_CLEAN _IO(AFL_SNAPSHOT_IOCTL_MAGIC, 2) + +static int afl_snapshot_dev_fd; + +static int afl_snapshot_init(void) { + + afl_snapshot_dev_fd = open(AFL_SNAPSHOT_FILE_NAME, 0); + return afl_snapshot_dev_fd; + +} + +static int afl_snapshot_do() { + + return ioctl(afl_snapshot_dev_fd, AFL_SNAPSHOT_IOCTL_DO); + +} + +static int afl_snapshot_clean(void) { + + return ioctl(afl_snapshot_dev_fd, AFL_SNAPSHOT_IOCTL_CLEAN); + +} + |