summaryrefslogtreecommitdiff
path: root/mangle.c
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-11-13 23:32:26 +0100
committerRobert Swiecki <robert@swiecki.net>2017-11-13 23:32:26 +0100
commitd50ed4254e9260cd0b4ddb5f6608ec54447ec08d (patch)
treec71c7db0bca8d8b7622cabbb207e49d296d1b0a8 /mangle.c
parent78633d1b907775e7067fb04332859703de72ac3f (diff)
downloadhonggfuzz-d50ed4254e9260cd0b4ddb5f6608ec54447ec08d.tar.gz
all: indent webkit->google
Diffstat (limited to 'mangle.c')
-rw-r--r--mangle.c578
1 files changed, 278 insertions, 300 deletions
diff --git a/mangle.c b/mangle.c
index c94747aa..a905510f 100644
--- a/mangle.c
+++ b/mangle.c
@@ -35,8 +35,7 @@
#include "libcommon/log.h"
#include "libcommon/util.h"
-static inline void mangle_Overwrite(run_t* run, const uint8_t* src, size_t off, size_t sz)
-{
+static inline void mangle_Overwrite(run_t* run, const uint8_t* src, size_t off, size_t sz) {
size_t maxToCopy = run->dynamicFileSz - off;
if (sz > maxToCopy) {
sz = maxToCopy;
@@ -45,8 +44,7 @@ static inline void mangle_Overwrite(run_t* run, const uint8_t* src, size_t off,
memcpy(&run->dynamicFile[off], src, sz);
}
-static inline void mangle_Move(run_t* run, size_t off_from, size_t off_to, size_t len)
-{
+static inline void mangle_Move(run_t* run, size_t off_from, size_t off_to, size_t len) {
if (off_from >= run->dynamicFileSz) {
return;
}
@@ -67,8 +65,7 @@ static inline void mangle_Move(run_t* run, size_t off_from, size_t off_to, size_
memmove(&run->dynamicFile[off_to], &run->dynamicFile[off_from], len);
}
-static void mangle_Inflate(run_t* run, size_t off, size_t len)
-{
+static void mangle_Inflate(run_t* run, size_t off, size_t len) {
if (run->dynamicFileSz >= run->global->maxFileSz) {
return;
}
@@ -80,8 +77,7 @@ static void mangle_Inflate(run_t* run, size_t off, size_t len)
mangle_Move(run, off, off + len, run->dynamicFileSz);
}
-static void mangle_MemMove(run_t* run)
-{
+static void mangle_MemMove(run_t* run) {
size_t off_from = util_rndGet(0, run->dynamicFileSz - 1);
size_t off_to = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(0, run->dynamicFileSz);
@@ -89,14 +85,12 @@ static void mangle_MemMove(run_t* run)
mangle_Move(run, off_from, off_to, len);
}
-static void mangle_Byte(run_t* run)
-{
+static void mangle_Byte(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
run->dynamicFile[off] = (uint8_t)util_rnd64();
}
-static void mangle_Bytes(run_t* run)
-{
+static void mangle_Bytes(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
uint32_t val = (uint32_t)util_rnd64();
@@ -105,14 +99,12 @@ static void mangle_Bytes(run_t* run)
mangle_Overwrite(run, (uint8_t*)&val, off, toCopy);
}
-static void mangle_Bit(run_t* run)
-{
+static void mangle_Bit(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
run->dynamicFile[off] ^= (uint8_t)(1U << util_rndGet(0, 7));
}
-static void mangle_DictionaryInsert(run_t* run)
-{
+static void mangle_DictionaryInsert(run_t* run) {
if (run->global->dictionaryCnt == 0) {
mangle_Bit(run);
return;
@@ -130,8 +122,7 @@ static void mangle_DictionaryInsert(run_t* run)
mangle_Overwrite(run, (uint8_t*)str->s, off, str->len);
}
-static void mangle_Dictionary(run_t* run)
-{
+static void mangle_Dictionary(run_t* run) {
if (run->global->dictionaryCnt == 0) {
mangle_Bit(run);
return;
@@ -148,243 +139,242 @@ static void mangle_Dictionary(run_t* run)
mangle_Overwrite(run, (uint8_t*)str->s, off, str->len);
}
-static void mangle_Magic(run_t* run)
-{
+static void mangle_Magic(run_t* run) {
static const struct {
const uint8_t val[8];
const size_t size;
} mangleMagicVals[] = {
/* 1B - No endianness */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x01\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x02\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x03\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x04\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x05\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x06\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x07\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x08\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x09\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0A\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0B\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0C\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0D\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0E\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x0F\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x10\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x20\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x40\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x7E\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x7F\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\x81\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\xC0\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\xFE\x00\x00\x00\x00\x00\x00\x00", 1 },
- { "\xFF\x00\x00\x00\x00\x00\x00\x00", 1 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x01\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x02\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x03\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x04\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x05\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x06\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x07\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x08\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x09\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0A\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0B\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0C\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0D\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0E\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x0F\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x10\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x20\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x40\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x7E\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x7F\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\x81\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\xC0\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\xFE\x00\x00\x00\x00\x00\x00\x00", 1},
+ {"\xFF\x00\x00\x00\x00\x00\x00\x00", 1},
/* 2B - NE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x01\x01\x00\x00\x00\x00\x00\x00", 2 },
- { "\x80\x80\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFF\xFF\x00\x00\x00\x00\x00\x00", 2 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x01\x01\x00\x00\x00\x00\x00\x00", 2},
+ {"\x80\x80\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFF\xFF\x00\x00\x00\x00\x00\x00", 2},
/* 2B - BE */
- { "\x00\x01\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x02\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x03\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x04\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x05\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x06\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x07\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x08\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x09\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0A\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0B\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0C\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0D\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0E\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x0F\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x10\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x20\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x40\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x7E\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x7F\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x80\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x81\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\xC0\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\xFE\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\xFF\x00\x00\x00\x00\x00\x00", 2 },
- { "\x7E\xFF\x00\x00\x00\x00\x00\x00", 2 },
- { "\x7F\xFF\x00\x00\x00\x00\x00\x00", 2 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x80\x01\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFF\xFE\x00\x00\x00\x00\x00\x00", 2 },
+ {"\x00\x01\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x02\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x03\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x04\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x05\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x06\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x07\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x08\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x09\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0A\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0B\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0C\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0D\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0E\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x0F\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x10\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x20\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x40\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x7E\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x7F\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x80\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x81\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\xC0\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\xFE\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\xFF\x00\x00\x00\x00\x00\x00", 2},
+ {"\x7E\xFF\x00\x00\x00\x00\x00\x00", 2},
+ {"\x7F\xFF\x00\x00\x00\x00\x00\x00", 2},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x80\x01\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFF\xFE\x00\x00\x00\x00\x00\x00", 2},
/* 2B - LE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x01\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x02\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x03\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x04\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x05\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x06\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x07\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x08\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x09\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0A\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0B\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0C\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0D\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0E\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x0F\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x10\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x20\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x40\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x7E\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x7F\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\x81\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\xC0\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFE\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFF\x00\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFF\x7E\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFF\x7F\x00\x00\x00\x00\x00\x00", 2 },
- { "\x00\x80\x00\x00\x00\x00\x00\x00", 2 },
- { "\x01\x80\x00\x00\x00\x00\x00\x00", 2 },
- { "\xFE\xFF\x00\x00\x00\x00\x00\x00", 2 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x01\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x02\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x03\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x04\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x05\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x06\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x07\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x08\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x09\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0A\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0B\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0C\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0D\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0E\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x0F\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x10\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x20\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x40\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x7E\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x7F\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\x81\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\xC0\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFE\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFF\x00\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFF\x7E\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFF\x7F\x00\x00\x00\x00\x00\x00", 2},
+ {"\x00\x80\x00\x00\x00\x00\x00\x00", 2},
+ {"\x01\x80\x00\x00\x00\x00\x00\x00", 2},
+ {"\xFE\xFF\x00\x00\x00\x00\x00\x00", 2},
/* 4B - NE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x01\x01\x01\x01\x00\x00\x00\x00", 4 },
- { "\x80\x80\x80\x80\x00\x00\x00\x00", 4 },
- { "\xFF\xFF\xFF\xFF\x00\x00\x00\x00", 4 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x01\x01\x01\x01\x00\x00\x00\x00", 4},
+ {"\x80\x80\x80\x80\x00\x00\x00\x00", 4},
+ {"\xFF\xFF\xFF\xFF\x00\x00\x00\x00", 4},
/* 4B - BE */
- { "\x00\x00\x00\x01\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x02\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x03\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x04\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x05\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x06\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x07\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x08\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x09\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0A\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0B\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0C\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0D\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0E\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x0F\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x10\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x20\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x40\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x7E\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x7F\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x80\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x81\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\xC0\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\xFE\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\xFF\x00\x00\x00\x00", 4 },
- { "\x7E\xFF\xFF\xFF\x00\x00\x00\x00", 4 },
- { "\x7F\xFF\xFF\xFF\x00\x00\x00\x00", 4 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x80\x00\x00\x01\x00\x00\x00\x00", 4 },
- { "\xFF\xFF\xFF\xFE\x00\x00\x00\x00", 4 },
+ {"\x00\x00\x00\x01\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x02\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x03\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x04\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x05\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x06\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x07\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x08\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x09\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0A\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0B\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0C\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0D\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0E\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x0F\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x10\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x20\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x40\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x7E\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x7F\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x80\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x81\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\xC0\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\xFE\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\xFF\x00\x00\x00\x00", 4},
+ {"\x7E\xFF\xFF\xFF\x00\x00\x00\x00", 4},
+ {"\x7F\xFF\xFF\xFF\x00\x00\x00\x00", 4},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x80\x00\x00\x01\x00\x00\x00\x00", 4},
+ {"\xFF\xFF\xFF\xFE\x00\x00\x00\x00", 4},
/* 4B - LE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x01\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x02\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x03\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x04\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x05\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x06\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x07\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x08\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x09\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0A\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0B\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0C\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0D\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0E\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x0F\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x10\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x20\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x40\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x7E\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x7F\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\x81\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\xC0\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\xFE\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\xFF\x00\x00\x00\x00\x00\x00\x00", 4 },
- { "\xFF\xFF\xFF\x7E\x00\x00\x00\x00", 4 },
- { "\xFF\xFF\xFF\x7F\x00\x00\x00\x00", 4 },
- { "\x00\x00\x00\x80\x00\x00\x00\x00", 4 },
- { "\x01\x00\x00\x80\x00\x00\x00\x00", 4 },
- { "\xFE\xFF\xFF\xFF\x00\x00\x00\x00", 4 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x01\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x02\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x03\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x04\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x05\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x06\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x07\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x08\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x09\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0A\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0B\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0C\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0D\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0E\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x0F\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x10\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x20\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x40\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x7E\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x7F\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\x81\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\xC0\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\xFE\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\xFF\x00\x00\x00\x00\x00\x00\x00", 4},
+ {"\xFF\xFF\xFF\x7E\x00\x00\x00\x00", 4},
+ {"\xFF\xFF\xFF\x7F\x00\x00\x00\x00", 4},
+ {"\x00\x00\x00\x80\x00\x00\x00\x00", 4},
+ {"\x01\x00\x00\x80\x00\x00\x00\x00", 4},
+ {"\xFE\xFF\xFF\xFF\x00\x00\x00\x00", 4},
/* 8B - NE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x01\x01\x01\x01\x01\x01\x01\x01", 8 },
- { "\x80\x80\x80\x80\x80\x80\x80\x80", 8 },
- { "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x01\x01\x01\x01\x01\x01\x01\x01", 8},
+ {"\x80\x80\x80\x80\x80\x80\x80\x80", 8},
+ {"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8},
/* 8B - BE */
- { "\x00\x00\x00\x00\x00\x00\x00\x01", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x02", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x03", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x04", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x05", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x06", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x07", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x08", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x09", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0A", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0B", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0C", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0D", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0E", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x0F", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x10", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x20", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x40", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x7E", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x7F", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x80", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x81", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\xC0", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\xFE", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\xFF", 8 },
- { "\x7E\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8 },
- { "\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x80\x00\x00\x00\x00\x00\x00\x01", 8 },
- { "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE", 8 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x01", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x02", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x03", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x04", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x05", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x06", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x07", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x08", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x09", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0A", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0B", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0C", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0D", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0E", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x0F", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x10", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x20", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x40", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x7E", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x7F", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x80", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x81", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\xC0", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\xFE", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\xFF", 8},
+ {"\x7E\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8},
+ {"\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x80\x00\x00\x00\x00\x00\x00\x01", 8},
+ {"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE", 8},
/* 8B - LE */
- { "\x00\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x01\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x02\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x03\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x04\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x05\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x06\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x07\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x08\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x09\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0A\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0B\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0C\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0D\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0E\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x0F\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x10\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x20\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x40\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x7E\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x7F\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x80\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\x81\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\xC0\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\xFE\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\xFF\x00\x00\x00\x00\x00\x00\x00", 8 },
- { "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7E", 8 },
- { "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F", 8 },
- { "\x00\x00\x00\x00\x00\x00\x00\x80", 8 },
- { "\x01\x00\x00\x00\x00\x00\x00\x80", 8 },
- { "\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8 },
+ {"\x00\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x01\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x02\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x03\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x04\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x05\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x06\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x07\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x08\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x09\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0A\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0B\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0C\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0D\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0E\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x0F\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x10\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x20\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x40\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x7E\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x7F\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x80\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\x81\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\xC0\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\xFE\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\xFF\x00\x00\x00\x00\x00\x00\x00", 8},
+ {"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7E", 8},
+ {"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x7F", 8},
+ {"\x00\x00\x00\x00\x00\x00\x00\x80", 8},
+ {"\x01\x00\x00\x00\x00\x00\x00\x80", 8},
+ {"\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8},
};
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
@@ -392,8 +382,7 @@ static void mangle_Magic(run_t* run)
mangle_Overwrite(run, mangleMagicVals[choice].val, off, mangleMagicVals[choice].size);
}
-static void mangle_MemSet(run_t* run)
-{
+static void mangle_MemSet(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t sz = util_rndGet(1, run->dynamicFileSz - off);
int val = (int)util_rndGet(0, UINT8_MAX);
@@ -401,15 +390,13 @@ static void mangle_MemSet(run_t* run)
memset(&run->dynamicFile[off], val, sz);
}
-static void mangle_Random(run_t* run)
-{
+static void mangle_Random(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(1, run->dynamicFileSz - off);
util_rndBuf(&run->dynamicFile[off], len);
}
-static void mangle_AddSub(run_t* run)
-{
+static void mangle_AddSub(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
/* 1,2,4 */
@@ -422,66 +409,62 @@ static void mangle_AddSub(run_t* run)
delta -= 4096;
switch (varLen) {
- case 1: {
- run->dynamicFile[off] += delta;
- return;
- break;
- }
- case 2: {
- int16_t val = *((uint16_t*)&run->dynamicFile[off]);
- if (util_rndGet(0, 1) == 0) {
- val += delta;
- } else {
- /* Foreign endianess */
- val = __builtin_bswap16(val);
- val += delta;
- val = __builtin_bswap16(val);
+ case 1: {
+ run->dynamicFile[off] += delta;
+ return;
+ break;
}
- mangle_Overwrite(run, (uint8_t*)&val, off, varLen);
- return;
- break;
- }
- case 4: {
- int32_t val = *((uint32_t*)&run->dynamicFile[off]);
- if (util_rndGet(0, 1) == 0) {
- val += delta;
- } else {
- /* Foreign endianess */
- val = __builtin_bswap32(val);
- val += delta;
- val = __builtin_bswap32(val);
+ case 2: {
+ int16_t val = *((uint16_t*)&run->dynamicFile[off]);
+ if (util_rndGet(0, 1) == 0) {
+ val += delta;
+ } else {
+ /* Foreign endianess */
+ val = __builtin_bswap16(val);
+ val += delta;
+ val = __builtin_bswap16(val);
+ }
+ mangle_Overwrite(run, (uint8_t*)&val, off, varLen);
+ return;
+ break;
+ }
+ case 4: {
+ int32_t val = *((uint32_t*)&run->dynamicFile[off]);
+ if (util_rndGet(0, 1) == 0) {
+ val += delta;
+ } else {
+ /* Foreign endianess */
+ val = __builtin_bswap32(val);
+ val += delta;
+ val = __builtin_bswap32(val);
+ }
+ mangle_Overwrite(run, (uint8_t*)&val, off, varLen);
+ return;
+ break;
+ }
+ default: {
+ LOG_F("Unknown variable length size: %" PRIu64, varLen);
+ break;
}
- mangle_Overwrite(run, (uint8_t*)&val, off, varLen);
- return;
- break;
- }
- default: {
- LOG_F("Unknown variable length size: %" PRIu64, varLen);
- break;
- }
}
}
-static void mangle_IncByte(run_t* run)
-{
+static void mangle_IncByte(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
run->dynamicFile[off] += (uint8_t)1UL;
}
-static void mangle_DecByte(run_t* run)
-{
+static void mangle_DecByte(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
run->dynamicFile[off] -= (uint8_t)1UL;
}
-static void mangle_NegByte(run_t* run)
-{
+static void mangle_NegByte(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
run->dynamicFile[off] = ~(run->dynamicFile[off]);
}
-static void mangle_CloneByte(run_t* run)
-{
+static void mangle_CloneByte(run_t* run) {
size_t off1 = util_rndGet(0, run->dynamicFileSz - 1);
size_t off2 = util_rndGet(0, run->dynamicFileSz - 1);
@@ -490,13 +473,11 @@ static void mangle_CloneByte(run_t* run)
run->dynamicFile[off2] = tmp;
}
-static void mangle_Resize(run_t* run)
-{
+static void mangle_Resize(run_t* run) {
run->dynamicFileSz = util_rndGet(1, run->global->maxFileSz);
}
-static void mangle_Expand(run_t* run)
-{
+static void mangle_Expand(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(1, run->dynamicFileSz - off);
@@ -504,8 +485,7 @@ static void mangle_Expand(run_t* run)
mangle_Move(run, off, off + len, run->dynamicFileSz);
}
-static void mangle_Shrink(run_t* run)
-{
+static void mangle_Shrink(run_t* run) {
if (run->dynamicFileSz <= 1U) {
return;
}
@@ -517,8 +497,7 @@ static void mangle_Shrink(run_t* run)
run->dynamicFileSz -= len;
}
-static void mangle_InsertRnd(run_t* run)
-{
+static void mangle_InsertRnd(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(1, run->dynamicFileSz - off);
@@ -527,8 +506,7 @@ static void mangle_InsertRnd(run_t* run)
util_rndBuf(&run->dynamicFile[off], len);
}
-void mangle_mangleContent(run_t* run)
-{
+void mangle_mangleContent(run_t* run) {
if (run->mutationsPerRun == 0U) {
return;
}