aboutsummaryrefslogtreecommitdiff
path: root/custom_mutators/examples/post_library_png.so.c
diff options
context:
space:
mode:
authorMaik Betka <9078425+voidptr127@users.noreply.github.com>2023-04-21 11:31:22 +0200
committerMaik Betka <9078425+voidptr127@users.noreply.github.com>2023-04-21 11:31:22 +0200
commit7101ffa1ae79e15d70905b09decbe69cdf53367b (patch)
treefd34b5686a4522dd6d29c9a40cee3d9826b2c7c6 /custom_mutators/examples/post_library_png.so.c
parent9ab902402cd33156257fc0355c0105e7e03f5ba3 (diff)
parent4e5f42cab6b8c501eeaf76ec7ca920089f6e0f3a (diff)
downloadafl++-7101ffa1ae79e15d70905b09decbe69cdf53367b.tar.gz
Merge remote-tracking branch 'origin/dev' into atnwalk
# Conflicts: # include/afl-fuzz.h # src/afl-fuzz-run.c
Diffstat (limited to 'custom_mutators/examples/post_library_png.so.c')
-rw-r--r--custom_mutators/examples/post_library_png.so.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/custom_mutators/examples/post_library_png.so.c b/custom_mutators/examples/post_library_png.so.c
index cd65b1bc..652da497 100644
--- a/custom_mutators/examples/post_library_png.so.c
+++ b/custom_mutators/examples/post_library_png.so.c
@@ -30,7 +30,7 @@
#include <string.h>
#include <zlib.h>
#include <arpa/inet.h>
-#include "alloc-inl.h"
+#include "afl-fuzz.h"
/* A macro to round an integer up to 4 kB. */
@@ -53,7 +53,7 @@ void *afl_custom_init(void *afl) {
}
- state->buf = calloc(sizeof(unsigned char), 4096);
+ state->buf = calloc(sizeof(unsigned char), MAX_FILE);
if (!state->buf) {
free(state);
@@ -80,21 +80,7 @@ size_t afl_custom_post_process(post_state_t *data, const unsigned char *in_buf,
}
- /* This is not a good way to do it, if you do not need to grow the buffer
- then just work with in_buf instead for speed reasons.
- But we want to show how to grow a buffer, so this is how it's done: */
-
- unsigned int pos = 8;
- unsigned char *new_buf = afl_realloc(out_buf, UP4K(len));
-
- if (!new_buf) {
-
- *out_buf = in_buf;
- return len;
-
- }
-
- memcpy(new_buf, in_buf, len);
+ unsigned int pos = 8;
/* Minimum size of a zero-length PNG chunk is 12 bytes; if we
don't have that, we can bail out. */
@@ -124,7 +110,7 @@ size_t afl_custom_post_process(post_state_t *data, const unsigned char *in_buf,
if (real_cksum != file_cksum) {
- *(uint32_t *)(new_buf + pos + 8 + chunk_len) = real_cksum;
+ *(uint32_t *)(data->buf + pos + 8 + chunk_len) = real_cksum;
}
@@ -134,7 +120,7 @@ size_t afl_custom_post_process(post_state_t *data, const unsigned char *in_buf,
}
- *out_buf = new_buf;
+ *out_buf = data->buf;
return len;
}