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