aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-06-24 09:59:00 +0200
committervanhauser-thc <vh@thc.org>2021-06-24 09:59:00 +0200
commit1fcb52957e59c89d6ad39ead753eefb4cf6683df (patch)
treeb245074c34fd3058af13375f77d8fbbb0f7a3457
parentec781af2c74c17ba3b6ce874a4fc26573872deb8 (diff)
downloadafl++-1fcb52957e59c89d6ad39ead753eefb4cf6683df.tar.gz
fix frida
-rw-r--r--frida_mode/src/cmplog/cmplog.c7
-rw-r--r--instrumentation/afl-compiler-rt.o.c11
-rw-r--r--instrumentation/split-compares-pass.so.cc10
-rw-r--r--test/test-int_cases.c95
-rw-r--r--test/test-uint_cases.c73
5 files changed, 114 insertions, 82 deletions
diff --git a/frida_mode/src/cmplog/cmplog.c b/frida_mode/src/cmplog/cmplog.c
index 0e3fbe53..8814f7f3 100644
--- a/frida_mode/src/cmplog/cmplog.c
+++ b/frida_mode/src/cmplog/cmplog.c
@@ -83,13 +83,6 @@ void cmplog_init(void) {
}
- /*
- * We can't use /dev/null or /dev/zero for this since it appears that they
- * don't validate the input buffer. Persumably as an optimization because they
- * don't actually write any data. The file will be deleted on close.
- */
- fd_tmp = cmplog_create_temp();
-
}
static gboolean cmplog_contains(GumAddress inner_base, GumAddress inner_limit,
diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c
index d4529e2c..3f518b55 100644
--- a/instrumentation/afl-compiler-rt.o.c
+++ b/instrumentation/afl-compiler-rt.o.c
@@ -627,7 +627,7 @@ static void __afl_unmap_shm(void) {
#define write_error(text) write_error_with_location(text, __FILE__, __LINE__)
-void write_error_with_location(char *text, char* filename, int linenumber) {
+void write_error_with_location(char *text, char *filename, int linenumber) {
u8 * o = getenv("__AFL_OUT_DIR");
char *e = strerror(errno);
@@ -640,14 +640,16 @@ void write_error_with_location(char *text, char* filename, int linenumber) {
if (f) {
- fprintf(f, "File %s, line %d: Error(%s): %s\n", filename, linenumber, text, e);
+ fprintf(f, "File %s, line %d: Error(%s): %s\n", filename, linenumber,
+ text, e);
fclose(f);
}
}
- fprintf(stderr, "File %s, line %d: Error(%s): %s\n", filename, linenumber, text, e);
+ fprintf(stderr, "File %s, line %d: Error(%s): %s\n", filename, linenumber,
+ text, e);
}
@@ -1014,7 +1016,7 @@ static void __afl_start_forkserver(void) {
if (read(FORKSRV_FD, &was_killed, 4) != 4) {
- //write_error("read from afl-fuzz");
+ // write_error("read from afl-fuzz");
_exit(1);
}
@@ -2077,3 +2079,4 @@ void __afl_coverage_interesting(u8 val, u32 id) {
}
#undef write_error
+
diff --git a/instrumentation/split-compares-pass.so.cc b/instrumentation/split-compares-pass.so.cc
index 68f6c329..13f45b69 100644
--- a/instrumentation/split-compares-pass.so.cc
+++ b/instrumentation/split-compares-pass.so.cc
@@ -1397,11 +1397,13 @@ bool SplitComparesTransform::runOnModule(Module &M) {
}
bool brokenDebug = false;
- if (verifyModule( M, &errs()
-#if LLVM_VERSION_MAJOR > 3 || (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 9)
- ,&brokenDebug // 9th May 2016
+ if (verifyModule(M, &errs()
+#if LLVM_VERSION_MAJOR > 3 || \
+ (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 9)
+ ,
+ &brokenDebug // 9th May 2016
#endif
- )) {
+ )) {
reportError(
"Module Verifier failed! Consider reporting a bug with the AFL++ "
diff --git a/test/test-int_cases.c b/test/test-int_cases.c
index c76206c5..93848d21 100644
--- a/test/test-int_cases.c
+++ b/test/test-int_cases.c
@@ -13,7 +13,7 @@ int main() {
volatile INT_TYPE a, b;
/* different values */
a = -21;
- b = -2; /* signs equal */
+ b = -2; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -22,7 +22,7 @@ int main() {
assert(!(a == b));
a = 1;
- b = 8; /* signs equal */
+ b = 8; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -30,10 +30,10 @@ int main() {
assert((a != b));
assert(!(a == b));
- if ((unsigned)(INT_TYPE)(~0) > 255) { /* short or bigger */
+ if ((unsigned)(INT_TYPE)(~0) > 255) { /* short or bigger */
volatile short a, b;
a = 2;
- b = 256+1; /* signs equal */
+ b = 256 + 1; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -42,7 +42,7 @@ int main() {
assert(!(a == b));
a = -1 - 256;
- b = -8; /* signs equal */
+ b = -8; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -50,10 +50,10 @@ int main() {
assert((a != b));
assert(!(a == b));
- if ((unsigned)(INT_TYPE)(~0) > 65535) { /* int or bigger */
+ if ((unsigned)(INT_TYPE)(~0) > 65535) { /* int or bigger */
volatile int a, b;
a = 2;
- b = 65536+1; /* signs equal */
+ b = 65536 + 1; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -62,7 +62,7 @@ int main() {
assert(!(a == b));
a = -1 - 65536;
- b = -8; /* signs equal */
+ b = -8; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -70,10 +70,10 @@ int main() {
assert((a != b));
assert(!(a == b));
- if ((unsigned)(INT_TYPE)(~0) > 4294967295) { /* long or bigger */
+ if ((unsigned)(INT_TYPE)(~0) > 4294967295) { /* long or bigger */
volatile long a, b;
a = 2;
- b = 4294967296+1; /* signs equal */
+ b = 4294967296 + 1; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -82,7 +82,7 @@ int main() {
assert(!(a == b));
a = -1 - 4294967296;
- b = -8; /* signs equal */
+ b = -8; /* signs equal */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -91,11 +91,13 @@ int main() {
assert(!(a == b));
}
+
}
+
}
a = -1;
- b = 1; /* signs differ */
+ b = 1; /* signs differ */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -104,7 +106,7 @@ int main() {
assert(!(a == b));
a = -1;
- b = 0; /* signs differ */
+ b = 0; /* signs differ */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -113,7 +115,7 @@ int main() {
assert(!(a == b));
a = -2;
- b = 8; /* signs differ */
+ b = 8; /* signs differ */
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -122,7 +124,7 @@ int main() {
assert(!(a == b));
a = -1;
- b = -2; /* signs equal */
+ b = -2; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -131,7 +133,7 @@ int main() {
assert(!(a == b));
a = 8;
- b = 1; /* signs equal */
+ b = 1; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -140,9 +142,10 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 255) {
+
volatile short a, b;
a = 1 + 256;
- b = 3; /* signs equal */
+ b = 3; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -151,7 +154,7 @@ int main() {
assert(!(a == b));
a = -1;
- b = -256; /* signs equal */
+ b = -256; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -160,9 +163,10 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 65535) {
+
volatile int a, b;
a = 1 + 65536;
- b = 3; /* signs equal */
+ b = 3; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -171,7 +175,7 @@ int main() {
assert(!(a == b));
a = -1;
- b = -65536; /* signs equal */
+ b = -65536; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -180,30 +184,34 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 4294967295) {
+
volatile long a, b;
a = 1 + 4294967296;
- b = 3; /* signs equal */
+ b = 3; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
-
+
a = -1;
- b = -4294967296; /* signs equal */
+ b = -4294967296; /* signs equal */
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
+
}
+
}
+
}
a = 1;
- b = -1; /* signs differ */
+ b = -1; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -212,7 +220,7 @@ int main() {
assert(!(a == b));
a = 0;
- b = -1; /* signs differ */
+ b = -1; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -221,7 +229,7 @@ int main() {
assert(!(a == b));
a = 8;
- b = -2; /* signs differ */
+ b = -2; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -230,7 +238,7 @@ int main() {
assert(!(a == b));
a = 1;
- b = -2; /* signs differ */
+ b = -2; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -239,9 +247,10 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 255) {
+
volatile short a, b;
a = 1 + 256;
- b = -2; /* signs differ */
+ b = -2; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -250,7 +259,7 @@ int main() {
assert(!(a == b));
a = -1;
- b = -2 - 256; /* signs differ */
+ b = -2 - 256; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -259,18 +268,19 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 65535) {
+
volatile int a, b;
a = 1 + 65536;
- b = -2; /* signs differ */
+ b = -2; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
-
+
a = -1;
- b = -2 - 65536; /* signs differ */
+ b = -2 - 65536; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -279,18 +289,19 @@ int main() {
assert(!(a == b));
if ((unsigned)(INT_TYPE)(~0) > 4294967295) {
+
volatile long a, b;
a = 1 + 4294967296;
- b = -2; /* signs differ */
+ b = -2; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
-
+
a = -1;
- b = -2 - 4294967296; /* signs differ */
+ b = -2 - 4294967296; /* signs differ */
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -299,7 +310,9 @@ int main() {
assert(!(a == b));
}
+
}
+
}
/* equal values */
@@ -358,6 +371,7 @@ int main() {
assert((a == b));
if ((unsigned)(INT_TYPE)(~0) > 255) {
+
volatile short a, b;
a = 1 + 256;
b = 1 + 256;
@@ -378,6 +392,7 @@ int main() {
assert((a == b));
if ((unsigned)(INT_TYPE)(~0) > 65535) {
+
volatile int a, b;
a = 1 + 65536;
b = 1 + 65536;
@@ -387,7 +402,7 @@ int main() {
assert((a >= b));
assert(!(a != b));
assert((a == b));
-
+
a = -2 - 65536;
b = -2 - 65536;
assert(!(a < b));
@@ -398,6 +413,7 @@ int main() {
assert((a == b));
if ((unsigned)(INT_TYPE)(~0) > 4294967295) {
+
volatile long a, b;
a = 1 + 4294967296;
b = 1 + 4294967296;
@@ -407,7 +423,7 @@ int main() {
assert((a >= b));
assert(!(a != b));
assert((a == b));
-
+
a = -2 - 4294967296;
b = -2 - 4294967296;
assert(!(a < b));
@@ -416,9 +432,12 @@ int main() {
assert((a >= b));
assert(!(a != b));
assert((a == b));
-
+
}
+
}
+
}
+
}
diff --git a/test/test-uint_cases.c b/test/test-uint_cases.c
index a277e28a..bb57f408 100644
--- a/test/test-uint_cases.c
+++ b/test/test-uint_cases.c
@@ -22,9 +22,10 @@ int main() {
assert(!(a == b));
if ((INT_TYPE)(~0) > 255) {
+
volatile unsigned short a, b;
- a = 256+2;
- b = 256+21;
+ a = 256 + 2;
+ b = 256 + 21;
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -33,7 +34,7 @@ int main() {
assert(!(a == b));
a = 21;
- b = 256+1;
+ b = 256 + 1;
assert((a < b));
assert((a <= b));
assert(!(a > b));
@@ -42,46 +43,51 @@ int main() {
assert(!(a == b));
if ((INT_TYPE)(~0) > 65535) {
+
volatile unsigned int a, b;
- a = 65536+2;
- b = 65536+21;
+ a = 65536 + 2;
+ b = 65536 + 21;
assert((a < b));
assert((a <= b));
assert(!(a > b));
assert(!(a >= b));
assert((a != b));
assert(!(a == b));
-
+
a = 21;
- b = 65536+1;
+ b = 65536 + 1;
assert((a < b));
assert((a <= b));
assert(!(a > b));
assert(!(a >= b));
assert((a != b));
assert(!(a == b));
+
}
if ((INT_TYPE)(~0) > 4294967295) {
+
volatile unsigned long a, b;
- a = 4294967296+2;
- b = 4294967296+21;
+ a = 4294967296 + 2;
+ b = 4294967296 + 21;
assert((a < b));
assert((a <= b));
assert(!(a > b));
assert(!(a >= b));
assert((a != b));
assert(!(a == b));
-
+
a = 21;
- b = 4294967296+1;
+ b = 4294967296 + 1;
assert((a < b));
assert((a <= b));
assert(!(a > b));
assert(!(a >= b));
assert((a != b));
assert(!(a == b));
+
}
+
}
a = 8;
@@ -94,9 +100,10 @@ int main() {
assert(!(a == b));
if ((INT_TYPE)(~0) > 255) {
+
volatile unsigned short a, b;
- a = 256+2;
- b = 256+1;
+ a = 256 + 2;
+ b = 256 + 1;
assert((a > b));
assert((a >= b));
assert(!(a < b));
@@ -104,7 +111,7 @@ int main() {
assert((a != b));
assert(!(a == b));
- a = 256+2;
+ a = 256 + 2;
b = 6;
assert((a > b));
assert((a >= b));
@@ -114,17 +121,18 @@ int main() {
assert(!(a == b));
if ((INT_TYPE)(~0) > 65535) {
+
volatile unsigned int a, b;
- a = 65536+2;
- b = 65536+1;
+ a = 65536 + 2;
+ b = 65536 + 1;
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
-
- a = 65536+2;
+
+ a = 65536 + 2;
b = 6;
assert((a > b));
assert((a >= b));
@@ -134,17 +142,18 @@ int main() {
assert(!(a == b));
if ((INT_TYPE)(~0) > 4294967295) {
+
volatile unsigned long a, b;
- a = 4294967296+2;
- b = 4294967296+1;
+ a = 4294967296 + 2;
+ b = 4294967296 + 1;
assert((a > b));
assert((a >= b));
assert(!(a < b));
assert(!(a <= b));
assert((a != b));
assert(!(a == b));
-
- a = 4294967296+2;
+
+ a = 4294967296 + 2;
b = 6;
assert((a > b));
assert((a >= b));
@@ -154,9 +163,10 @@ int main() {
assert(!(a == b));
}
+
}
- }
+ }
a = 0;
b = 0;
@@ -177,9 +187,10 @@ int main() {
assert((a == b));
if ((INT_TYPE)(~0) > 255) {
+
volatile unsigned short a, b;
- a = 256+5;
- b = 256+5;
+ a = 256 + 5;
+ b = 256 + 5;
assert(!(a < b));
assert((a <= b));
assert(!(a > b));
@@ -188,9 +199,10 @@ int main() {
assert((a == b));
if ((INT_TYPE)(~0) > 65535) {
+
volatile unsigned int a, b;
- a = 65536+5;
- b = 65536+5;
+ a = 65536 + 5;
+ b = 65536 + 5;
assert(!(a < b));
assert((a <= b));
assert(!(a > b));
@@ -199,16 +211,19 @@ int main() {
assert((a == b));
if ((INT_TYPE)(~0) > 4294967295) {
+
volatile unsigned long a, b;
- a = 4294967296+5;
- b = 4294967296+5;
+ a = 4294967296 + 5;
+ b = 4294967296 + 5;
assert(!(a < b));
assert((a <= b));
assert(!(a > b));
assert((a >= b));
assert(!(a != b));
assert((a == b));
+
}
+
}
}