aboutsummaryrefslogtreecommitdiff
path: root/afl-cmin
diff options
context:
space:
mode:
authorhexcoder- <heiko@hexco.de>2020-01-24 20:58:15 +0100
committerhexcoder- <heiko@hexco.de>2020-01-24 20:58:15 +0100
commit6abe33030396c8f15f00b4fe3d083f3841de3212 (patch)
tree7165457fed5c55b3031675cec8b4f1fd29f10f7c /afl-cmin
parent436873a19abe5858e56555db02095f4eb7e6febd (diff)
downloadAFLplusplus-6abe33030396c8f15f00b4fe3d083f3841de3212.tar.gz
afl-cmin more awk portability (mawk), add afl-cmin/afl-tmin tests
for non-x86 platforms
Diffstat (limited to 'afl-cmin')
-rwxr-xr-xafl-cmin27
1 files changed, 8 insertions, 19 deletions
diff --git a/afl-cmin b/afl-cmin
index a072a62a..de5a66ed 100755
--- a/afl-cmin
+++ b/afl-cmin
@@ -8,6 +8,10 @@ awk -f - -- ${@+"$@"} <<'EOF'
#
# based on afl-cmin bash script written by Michal Zalewski
# rewritten by Heiko Eißfeldt (hexcoder-)
+# tested with:
+# gnu awk (x86 Linux)
+# bsd awk (x86 *BSD)
+# mawk (arm32 raspbian)
#
# uses getopt.awk package from Arnold Robbins
#
@@ -52,7 +56,7 @@ function getopt(argc, argv, options, thisopt, i)
Optind++
_opti = 0
return -1
- } else if (argv[Optind] !~ /^-[^:[:space:]]/) {
+ } else if (argv[Optind] !~ /^-[^:\t ]/) {
_opti = 0
return -1
}
@@ -88,22 +92,6 @@ function getopt(argc, argv, options, thisopt, i)
return thisopt
}
-BEGIN {
- Opterr = 1 # default is to diagnose
- Optind = 1 # skip ARGV[0]
-
- # test program
- if (_getopt_test) {
- while ((_go_c = getopt(ARGC, ARGV, "ab:cd")) != -1)
- printf("c = <%c>, Optarg = <%s>\n",
- _go_c, Optarg)
- printf("non-option arguments:\n")
- for (; Optind < ARGC; Optind++)
- printf("\tARGV[%d] = <%s>\n",
- Optind, ARGV[Optind])
- }
-}
-
function usage() {
print \
"Usage: afl-cmin [ options ] -- /path/to/target_app [ ... ]\n" \
@@ -311,7 +299,7 @@ BEGIN {
}
if (!ENVIRON["AFL_PATH"]) {
- if (0 == system("test -f afl-cmin.awk")) {
+ if (0 == system("test -f afl-cmin")) {
showmap = "./afl-showmap"
} else {
"which afl-showmap 2>/dev/null" | getline showmap
@@ -336,7 +324,8 @@ BEGIN {
} else {
stat_format = "-f '%z %N'" # *BSD, MacOS
}
- while ("cd "in_dir" && find . -type f -exec stat "stat_format" \\{\\} \\; | sort -n | cut -d' ' -f2-" | getline) {
+ cmdline = "cd "in_dir" && find . -type f -exec stat "stat_format" \\{\\} \\; | sort -n | cut -d' ' -f2-"
+ while (cmdline | getline) {
infilesSmallToBig[i++] = $0
}
in_count = i