|
|
@@ -0,0 +1,38 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+DIR=`cd $(dirname "$0"); pwd`
|
|
|
+QBE=$DIR/../obj/qbe
|
|
|
+BUGF=/tmp/bug.id
|
|
|
+FIND=$1
|
|
|
+FIND=${FIND:-afl-find}
|
|
|
+
|
|
|
+if ! test -f $BUGF
|
|
|
+then
|
|
|
+ echo 1 > $BUGF
|
|
|
+fi
|
|
|
+
|
|
|
+while true
|
|
|
+do
|
|
|
+ ID=`cat $BUGF`
|
|
|
+
|
|
|
+ if test `ls $FIND/crashes/id* | wc -l` -lt $ID
|
|
|
+ then
|
|
|
+ rm -f bug.ssa
|
|
|
+ echo "All done!"
|
|
|
+ exit 0
|
|
|
+ fi
|
|
|
+
|
|
|
+ BUG=`ls $FIND/crashes/id* | sed -ne "${ID}{p;q}"`
|
|
|
+
|
|
|
+ echo "*** Crash $ID"
|
|
|
+ cp $BUG bug.ssa
|
|
|
+
|
|
|
+ $QBE bug.ssa > /dev/null
|
|
|
+ RET=$?
|
|
|
+ if test \( $RET -ne 0 \) -a \( $RET -ne 1 \)
|
|
|
+ then
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+
|
|
|
+ expr $ID + 1 > $BUGF
|
|
|
+done
|