From b3206f2b0db083b98b69206ec93fa9557240c49c Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Sun, 22 May 2016 01:54:23 +0000
Subject: [PATCH] updates to make the wrapper script an .exe

Former-commit-id: 61115202b923d85351fda28a5fa18aa20ca24449
---
 .gitattributes                 |  1 +
 tools/do_makepeasoupbinary2.sh | 30 ++++++++++++++++++++++++++++++
 tools/ps_analyze.sh            |  2 +-
 tools/ps_run.sh                |  9 +++++----
 4 files changed, 37 insertions(+), 5 deletions(-)
 create mode 100755 tools/do_makepeasoupbinary2.sh

diff --git a/.gitattributes b/.gitattributes
index 33c9ddb6e..940614a64 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3746,6 +3746,7 @@ tools/do_idapro.sh -text
 tools/do_installer.sh -text
 tools/do_integertransform.sh -text
 tools/do_makepeasoupbinary.sh -text
+tools/do_makepeasoupbinary2.sh -text
 tools/do_manual_cover.sh -text
 tools/do_manualtests.sh -text
 tools/do_p1transform.sh -text
diff --git a/tools/do_makepeasoupbinary2.sh b/tools/do_makepeasoupbinary2.sh
new file mode 100755
index 000000000..3095c1e7c
--- /dev/null
+++ b/tools/do_makepeasoupbinary2.sh
@@ -0,0 +1,30 @@
+#!/bin/sh 
+
+
+name=$1
+
+current_dir=`pwd`
+peasoup_binary=$name.sh
+
+
+echo "
+int main(int argc, char* argv[0], char* envp[])
+{
+
+	char *newargv[argc+3];
+	const char* ps_run=\"$current_dir/ps_run.sh\";
+	newargv[0]=argv[0];
+	newargv[1]=\"$current_dir\";
+	unsigned int i=0;
+	for(i=0;i<argc;i++)
+		newargv[i+2]=argv[i];
+	newargv[argc+2]=0;
+
+	execve(ps_run,newargv,envp);
+
+	perror(\"Unable to start ps_run.sh\");
+	return -1;
+}" |  gcc -o $peasoup_binary -w -xc -
+
+cp $PEASOUP_HOME/tools/ps_run.sh $current_dir
+
diff --git a/tools/ps_analyze.sh b/tools/ps_analyze.sh
index 3843afc9a..f5f7c97c4 100755
--- a/tools/ps_analyze.sh
+++ b/tools/ps_analyze.sh
@@ -873,7 +873,7 @@ perform_step cgc_optimize_start none $DAFFY_HOME/dead_code_ident/optimize_start.
 # Let's output the modified binary
 # This binary will really be a shell script that calls the newly stratafied binary
 #
-perform_step create_binary_script 	mandatory $PEASOUP_HOME/tools/do_makepeasoupbinary.sh $name 
+perform_step create_binary_script 	mandatory $PEASOUP_HOME/tools/do_makepeasoupbinary2.sh $name 
 perform_step heaprand 	 		pc_confine,double_free $PEASOUP_HOME/tools/update_env_var.sh STRATA_HEAPRAND 1
 perform_step controlled_exit none 		 	 $PEASOUP_HOME/tools/update_env_var.sh STRATA_CONTROLLED_EXIT 1
 perform_step detect_server  pc_confine  $PEASOUP_HOME/tools/update_env_var.sh STRATA_DETECT_SERVERS 1
diff --git a/tools/ps_run.sh b/tools/ps_run.sh
index 001f8ccfe..2a350f168 100755
--- a/tools/ps_run.sh
+++ b/tools/ps_run.sh
@@ -108,7 +108,7 @@ STRATA_ANNOT_FILE=$datapath/a.ncexe.annot
 STRATA_IS_SO=0
 STRATA_IBTL=0
 STRATA_EXE_FILE=$datapath/a.$exe
-STRATA_COMM=$(basename $origbinpath)
+STRATA_COMM=$(/usr/bin/basename $origbinpath)
 SPAWNER_EXE_FILE=$datapath/spawned
 STRATA_MAX_WARNINGS=500000
 	exec -a $origbinpath $datapath/a.$exe \"\$@\""
@@ -133,7 +133,7 @@ addsigs () {
 	echo "$sig" | tr ' ' '\n' | /bin/grep -v '^[ \t]*$' >> $datapath/a.ncexe.sigs.$$
 }
 
-cp $datapath/a.ncexe.sigs.orig $datapath/a.ncexe.sigs.$$
+/bin/cp $datapath/a.ncexe.sigs.orig $datapath/a.ncexe.sigs.$$
 # only trust command line inputs for files that are not setuid/setgid
 if [ ! -g a.ncexe -a ! -u a.ncexe ]; then
 	echo $datapath/a.stratafied >> $datapath/a.ncexe.sigs.$$
@@ -185,9 +185,10 @@ elif [ -f $datapath/a.irdb.bspri ]; then
 	command="STRATA_SPRI_FILE=$datapath/a.irdb.bspri $command"
 fi
 
-
-if [ ! -z $VERBOSE ]; then
+ 
+if [ ! -z $ZEST_VERBOSE ]; then
 	echo $command
 fi
 
+
 eval $command
-- 
GitLab