aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhexcoder- <heiko@hexco.de>2020-11-13 00:44:08 +0100
committerhexcoder- <heiko@hexco.de>2020-11-13 00:44:08 +0100
commit54a312a5fe7d83fcee8b420868bc918622e9b3a6 (patch)
treea3d2926e2152394db28969be99d021aaa4c67e81
parent4a4c14c9a926a75a52d3775098211cf3a89e0a7d (diff)
downloadafl++-54a312a5fe7d83fcee8b420868bc918622e9b3a6.tar.gz
more small fixes
-rw-r--r--qemu_mode/libcompcov/pmparser.h2
m---------qemu_mode/qemuafl0
-rw-r--r--src/afl-common.c2
-rw-r--r--src/afl-fuzz-python.c1
-rw-r--r--unicorn_mode/samples/persistent/simple_target_noncrashing.c16
5 files changed, 13 insertions, 8 deletions
diff --git a/qemu_mode/libcompcov/pmparser.h b/qemu_mode/libcompcov/pmparser.h
index 9421d47e..1a3d8834 100644
--- a/qemu_mode/libcompcov/pmparser.h
+++ b/qemu_mode/libcompcov/pmparser.h
@@ -108,7 +108,6 @@ void pmparser_print(procmaps_struct *map, int order);
procmaps_iterator *pmparser_parse(int pid) {
- procmaps_iterator *maps_it = malloc(sizeof(procmaps_iterator));
char maps_path[500];
if (pid >= 0) {
@@ -129,6 +128,7 @@ procmaps_iterator *pmparser_parse(int pid) {
}
+ procmaps_iterator *maps_it = malloc(sizeof(procmaps_iterator));
int ind = 0;
char buf[PROCMAPS_LINE_MAX_LENGTH];
// int c;
diff --git a/qemu_mode/qemuafl b/qemu_mode/qemuafl
deleted file mode 160000
-Subproject d66c9e2654efa8939f0fe6995d11a72b98a4da3
diff --git a/src/afl-common.c b/src/afl-common.c
index 19c9419b..8cf1a444 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -342,7 +342,7 @@ u8 *find_binary(u8 *fname) {
if (stat(target_path, &st) || !S_ISREG(st.st_mode) ||
!(st.st_mode & 0111) || st.st_size < 4) {
- free(target_path);
+ ck_free(target_path);
FATAL("Program '%s' not found or not executable", fname);
}
diff --git a/src/afl-fuzz-python.c b/src/afl-fuzz-python.c
index fe16bc46..596b733e 100644
--- a/src/afl-fuzz-python.c
+++ b/src/afl-fuzz-python.c
@@ -214,6 +214,7 @@ static py_mutator_t *init_py_module(afl_state_t *afl, u8 *module_name) {
PyErr_Print();
fprintf(stderr, "Failed to load \"%s\"\n", module_name);
+ free(py);
return NULL;
}
diff --git a/unicorn_mode/samples/persistent/simple_target_noncrashing.c b/unicorn_mode/samples/persistent/simple_target_noncrashing.c
index 00764473..9257643b 100644
--- a/unicorn_mode/samples/persistent/simple_target_noncrashing.c
+++ b/unicorn_mode/samples/persistent/simple_target_noncrashing.c
@@ -10,7 +10,7 @@
* Written by Nathan Voss <njvoss99@gmail.com>
* Adapted by Lukas Seidel <seidel.1@campus.tu-berlin.de>
*/
-
+#include <string.h>
int main(int argc, char** argv) {
if(argc < 2){
@@ -19,15 +19,19 @@ int main(int argc, char** argv) {
char *data_buf = argv[1];
- if len(data_buf < 20) {
- if (data_buf[20] != 0) {
+ if (strlen(data_buf) >= 21 && data_buf[20] != 0) {
printf("Not crashing");
- } else if (data_buf[0] > 0x10 && data_buf[0] < 0x20 && data_buf[1] > data_buf[2]) {
+ } else if (strlen(data_buf) > 1
+ && data_buf[0] > 0x10 && data_buf[0] < 0x20 && data_buf[1] > data_buf[2]) {
printf("Also not crashing with databuf[0] == %c", data_buf[0])
- } else if (data_buf[9] == 0x00 && data_buf[10] != 0x00 && data_buf[11] == 0x00) {
+ }
+#if 0
+ // not possible with argv (zero terminated strings) (hexcoder-)
+ // do not try to access data_buf[10] and beyond
+ else if (data_buf[9] == 0x00 && data_buf[10] != 0x00 && data_buf[11] == 0x00) {
// Cause a crash if data[10] is not zero, but [9] and [11] are zero
unsigned char invalid_read = *(unsigned char *) 0x00000000;
}
-
+#endif
return 0;
}