aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2023-06-24 09:30:09 +0200
committervanhauser-thc <vh@thc.org>2023-06-24 09:30:09 +0200
commitedd352612da1f58832cbe84d909a8998ce4fa690 (patch)
tree0d2c59bb8bcc0c4d512bf36ff1633395c1b32bd3
parent2106738d6b7593f18aab87d03e493ea3a86adeee (diff)
downloadafl++-edd352612da1f58832cbe84d909a8998ce4fa690.tar.gz
code format
-rw-r--r--docs/Changelog.md6
-rw-r--r--instrumentation/split-compares-pass.so.cc12
2 files changed, 14 insertions, 4 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md
index c850c43e..e6b90d3d 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -18,9 +18,13 @@
- fixed a bug inherited from vanilla AFL where a coverage of
map[123] = 11 would be the same as map[1123] = 1
- warn on crashing inputs
- - afl-cc
+ - afl-cc:
- fixed an off-by-one instrumentation of iselect, hurting coverage a bit.
Thanks to @amykweon for spotting and fixing!
+ - @toka fixed a bug in laf-intel signed integer comparison splitting,
+ thanks a lot!!
+ - frida_mode:
+ - support for long form instrumentation on x86_x64 and arm64
### Version ++4.07c (release)
diff --git a/instrumentation/split-compares-pass.so.cc b/instrumentation/split-compares-pass.so.cc
index 3cfd1964..6eafb332 100644
--- a/instrumentation/split-compares-pass.so.cc
+++ b/instrumentation/split-compares-pass.so.cc
@@ -464,8 +464,11 @@ bool SplitComparesTransform::simplifyOrEqualsCompare(CmpInst *IcmpInst,
ReplaceInstWithInst(IcmpInst->getParent()->getInstList(), ii, PN);
#endif
if (new_pred == CmpInst::ICMP_SGT || new_pred == CmpInst::ICMP_SLT) {
+
simplifySignedCompare(icmp_np, M, worklist);
+
}
+
worklist.push_back(icmp_eq);
return true;
@@ -751,11 +754,14 @@ bool SplitComparesTransform::splitCompare(CmpInst *cmp_inst, Module &M,
icmp_inv_cmp = CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_UGT,
op0_high, op1_high);
- }
- else {
+ } else {
+
// Never gonna appen
if (!be_quiet)
- fprintf(stderr, "Error: split-compare: Equals or signed not removed: %d\n", pred);
+ fprintf(stderr,
+ "Error: split-compare: Equals or signed not removed: %d\n",
+ pred);
+
}
#if LLVM_MAJOR >= 16