summaryrefslogtreecommitdiff
path: root/mangle.c
diff options
context:
space:
mode:
authorplusun <tomsun.0.7@gmail.com>2018-08-06 07:16:24 +0000
committerplusun <tomsun.0.7@gmail.com>2018-08-06 07:16:24 +0000
commit98022490a8a44232f6c56f8aba7628d97875a0a4 (patch)
treeec5143e742c2c20c684276c2680104d0c39082b2 /mangle.c
parente2635e5a786552ee22bc167d0b2af5b2bd4b5fd4 (diff)
downloadhonggfuzz-98022490a8a44232f6c56f8aba7628d97875a0a4.tar.gz
detect 'only-printable' inside input_setSize to reduce modifications
Diffstat (limited to 'mangle.c')
-rw-r--r--mangle.c37
1 files changed, 3 insertions, 34 deletions
diff --git a/mangle.c b/mangle.c
index 8993a690..cfcb679a 100644
--- a/mangle.c
+++ b/mangle.c
@@ -81,20 +81,6 @@ static void mangle_Inflate(run_t* run, size_t off, size_t len) {
mangle_Move(run, off, off + len, run->dynamicFileSz);
}
-static void mangle_InflatePrintable(run_t* run, size_t off, size_t len) {
- if (run->dynamicFileSz >= run->global->mutate.maxFileSz) {
- return;
- }
- if (len > (run->global->mutate.maxFileSz - run->dynamicFileSz)) {
- len = run->global->mutate.maxFileSz - run->dynamicFileSz;
- }
-
- size_t old_sz = run->dynamicFileSz;
- input_setSize(run, run->dynamicFileSz + len);
- memset(&run->dynamicFile[old_sz], ' ', len);
- mangle_Move(run, off, off + len, run->dynamicFileSz);
-}
-
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);
@@ -924,15 +910,6 @@ static void mangle_Resize(run_t* run) {
input_setSize(run, sz);
}
-static void mangle_ResizePrintable(run_t* run) {
- size_t old_sz = run->dynamicFileSz;
- size_t sz = util_rndGet(1, run->global->mutate.maxFileSz);
- input_setSize(run, sz);
- if (old_sz < sz) {
- memset(&run->dynamicFile[old_sz], ' ', sz - old_sz);
- }
-}
-
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);
@@ -941,14 +918,6 @@ static void mangle_Expand(run_t* run) {
mangle_Move(run, off, off + len, run->dynamicFileSz);
}
-static void mangle_ExpandPrintable(run_t* run) {
- size_t off = util_rndGet(0, run->dynamicFileSz - 1);
- size_t len = util_rndGet(1, run->dynamicFileSz - off);
-
- mangle_InflatePrintable(run, off, len);
- mangle_Move(run, off, off + len, run->dynamicFileSz);
-}
-
static void mangle_Shrink(run_t* run) {
if (run->dynamicFileSz <= 1U) {
return;
@@ -974,7 +943,7 @@ static void mangle_InsertRndPrintable(run_t* run) {
size_t off = util_rndGet(0, run->dynamicFileSz - 1);
size_t len = util_rndGet(1, run->dynamicFileSz - off);
- mangle_InflatePrintable(run, off, len);
+ mangle_Inflate(run, off, len);
mangle_Move(run, off, off + len, run->dynamicFileSz);
util_rndBuf(&run->dynamicFile[off], len);
util_turnToPrintable(&run->dynamicFile[off], len);
@@ -1013,7 +982,7 @@ static void (*mangleFuncs[])(run_t * run) = {
void mangle_init(bool only_printable) {
if (only_printable) {
static void (*const manglePrintableFuncs[])(run_t * run) = {
- mangle_ResizePrintable,
+ mangle_Resize,
mangle_PrintableByte,
mangle_BitPrintable,
mangle_PrintableBytes,
@@ -1028,7 +997,7 @@ void mangle_init(bool only_printable) {
mangle_MemSetPrintable,
mangle_RandomPrintable,
mangle_CloneByte,
- mangle_ExpandPrintable,
+ mangle_Expand,
mangle_Shrink,
mangle_InsertRndPrintable,
mangle_ASCIIVal,