summaryrefslogtreecommitdiff
path: root/mangle.c
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-12-21 04:07:11 +0100
committerRobert Swiecki <robert@swiecki.net>2017-12-21 04:07:11 +0100
commit3f8e9fd3acf8883a2cf76a8971cd2ecc21919d67 (patch)
tree3a4fa9e5f27f86b72a78daddb3c035ff3d44dde9 /mangle.c
parent6088be4120d7be84d70ed18ee879f31532b9776d (diff)
downloadhonggfuzz-3f8e9fd3acf8883a2cf76a8971cd2ecc21919d67.tar.gz
mangle: allow 0-lenght inputs
Diffstat (limited to 'mangle.c')
-rw-r--r--mangle.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/mangle.c b/mangle.c
index ed4d71e6..3512aeef 100644
--- a/mangle.c
+++ b/mangle.c
@@ -492,7 +492,7 @@ static void mangle_CloneByte(run_t* run) {
}
static void mangle_Resize(run_t* run) {
- run->dynamicFileSz = util_rndGet(1, run->global->maxFileSz);
+ run->dynamicFileSz = util_rndGet(0, run->global->maxFileSz);
}
static void mangle_Expand(run_t* run) {
@@ -537,17 +537,16 @@ void mangle_mangleContent(run_t* run) {
return;
}
- /* Minimum support file size for mangling is 1 */
- if (run->dynamicFileSz == 0UL) {
- run->dynamicFileSz = 1UL;
- run->dynamicFile[0] = '\0';
- }
-
/* 20% chance to change the file size */
if ((util_rnd64() % 5) == 0) {
mangle_Resize(run);
}
+ /* No point in modifying it if its size is 0 */
+ if (run->dynamicFileSz == 0UL) {
+ return;
+ }
+
static void (*const mangleFuncs[])(run_t * run) = {
mangle_Byte,
mangle_Bit,
@@ -567,7 +566,6 @@ void mangle_mangleContent(run_t* run) {
mangle_Shrink,
mangle_InsertRnd,
mangle_ASCIIVal,
- mangle_Resize,
};
/* Max number of stacked changes is 6 */