about summary refs log tree commit diff
path: root/afl-cmin
diff options
context:
space:
mode:
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