about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-07-13 17:57:02 +0200
committervan Hauser <vh@thc.org>2020-07-13 17:57:02 +0200
commit4d929f80fbf22eeb09612a575bcd1a4141b9a8a9 (patch)
treecec725521990808bb9888a01151733d0b7b49aed
parent6b79e1f76dee1dc5775b1e10edfa5b2180f553f8 (diff)
downloadafl++-4d929f80fbf22eeb09612a575bcd1a4141b9a8a9.tar.gz
fix for laf intel float split not enabled if not not on a tty
-rwxr-xr-x.custom-format.py3
-rw-r--r--docs/Changelog.md3
-rw-r--r--examples/afl_untracer/README.md1
-rw-r--r--examples/afl_untracer/afl-untracer.c14
-rw-r--r--llvm_mode/split-compares-pass.so.cc4
5 files changed, 15 insertions, 10 deletions
diff --git a/.custom-format.py b/.custom-format.py
index 6f1b0bfa..60f6d9c3 100755
--- a/.custom-format.py
+++ b/.custom-format.py
@@ -32,7 +32,8 @@ if CLANG_FORMAT_BIN is None:
         p = subprocess.Popen(["clang-format-10", "--version"], stdout=subprocess.PIPE)
         o, _ = p.communicate()
         o = str(o, "utf-8")
-        o = o[len("clang-format version "):].strip()
+        o = re.sub(r".*ersion ", "", o)
+        #o = o[len("clang-format version "):].strip()
         o = o[:o.find(".")]
         o = int(o)
     except:
diff --git a/docs/Changelog.md b/docs/Changelog.md
index b0bda6dc..8fb85ce6 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -13,7 +13,8 @@ sending a mail to <afl-users+subscribe@googlegroups.com>.
   - afl-fuzz:
      - eliminated CPU affinity race condition for -S/-M runs
   - llvm_mode:
-     - fix for laf-intel float splitting
+     - fixes for laf-intel float splitting (thanks to mark-griffin for
+       reporting)
      - LTO: autodictionary mode is a default
      - LTO: instrim instrumentation disabled, only classic support used
             as it is always better
diff --git a/examples/afl_untracer/README.md b/examples/afl_untracer/README.md
index e59792cb..9cb13527 100644
--- a/examples/afl_untracer/README.md
+++ b/examples/afl_untracer/README.md
@@ -32,6 +32,7 @@ To easily run the scripts without needing to run the GUI with Ghidra:
 /opt/ghidra/support/analyzeHeadless /tmp/ tmp$$ -import libtestinstr.so -postscript ./ghidra_get_patchpoints.java
 rm -rf /tmp/tmp$$
 ```
+The file is created at `~/Desktop/patches.txt`
 
 ### Fuzzing
 
diff --git a/examples/afl_untracer/afl-untracer.c b/examples/afl_untracer/afl-untracer.c
index dc2cd378..68658bfd 100644
--- a/examples/afl_untracer/afl-untracer.c
+++ b/examples/afl_untracer/afl-untracer.c
@@ -74,6 +74,9 @@
 
 // STEP 1:
 
+/* here you need to specify the parameter for the target function */
+static void *(*o_function)(u8 *buf, int len);
+
 /* use stdin (1) or a file on the commandline (0) */
 static u32 use_stdin = 1;
 
@@ -668,13 +671,10 @@ static void sigtrap_handler(int signum, siginfo_t *si, void *context) {
 
 }
 
-/* here you need to specify the parameter for the target function */
-static void *(*o_function)(u8 *buf, int len);
-
 /* the MAIN function */
 int main(int argc, char *argv[]) {
 
-  (void) personality(ADDR_NO_RANDOMIZE); // disable ASLR
+  (void)personality(ADDR_NO_RANDOMIZE);  // disable ASLR
 
   pid = getpid();
   if (getenv("AFL_DEBUG")) debug = 1;
@@ -745,9 +745,10 @@ int main(int argc, char *argv[]) {
 }
 
 #ifndef _DEBUG
-inline 
+inline
 #endif
-static void fuzz() {
+    static void
+    fuzz() {
 
   // STEP 3: call the function to fuzz, also the functions you might
   //         need to call to prepare the function and - important! -
@@ -762,3 +763,4 @@ static void fuzz() {
   // END STEP 3
 
 }
+
diff --git a/llvm_mode/split-compares-pass.so.cc b/llvm_mode/split-compares-pass.so.cc
index 0681fbd6..55128ca2 100644
--- a/llvm_mode/split-compares-pass.so.cc
+++ b/llvm_mode/split-compares-pass.so.cc
@@ -1263,8 +1263,6 @@ bool SplitComparesTransform::runOnModule(Module &M) {
 
     if (enableFPSplit) {
 
-      simplifyFPCompares(M);
-
       errs() << "Split-floatingpoint-compare-pass: " << splitFPCompares(M)
              << " FP comparisons splitted\n";
 
@@ -1274,6 +1272,8 @@ bool SplitComparesTransform::runOnModule(Module &M) {
 
     be_quiet = 1;
 
+  if (enableFPSplit) simplifyFPCompares(M);
+
   simplifyCompares(M);
 
   simplifyIntSignedness(M);