Software: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g. PHP/5.2.4-2ubuntu5.12 uname -a: Linux forum.circlefusion.com 2.6.24-19-server #1 SMP Wed Jun 18 15:18:00 UTC 2008 i686 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/share/doc/m4/examples/ drwxr-xr-x |
Viewing file: stackovf.sh (1.87 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | #!/bin/sh # Script to verify that stack overflow is diagnosed properly when # there is infinite macro call nesting. # (causes coredump in m4-1.0.3) # On some systems the ulimit command is available in ksh or bash but not sh (exec 2>/dev/null; ulimit -HSs 300) || { for altshell in bash bsh ksh ; do if (exec >/dev/null 2>&1; $altshell -c 'ulimit -HSs 300') && test -z "$1" then echo "Using $altshell because it supports ulimit" exec $altshell $0 running-with-$altshell exit 9 fi done } PATH=.:..:$PATH; export PATH; M4=m4 type $M4 tmpfile=`tempfile 2> /dev/null` || tmpfile=/tmp/t.$$ trap 'rm -f $tmpfile; exit 1' 1 2 3 15 rm -f core perl -e ' # Generate nested define sequence $max=1000000; for ($i=0; $i<$max; $i++) { print "define(X$i,\n"; } for ($i=$max-1; $i>=0; $i--) { print "body with substance no. $i)dnl\n" } ' | \ ( # Limit the stack size if the shell we are running permits it if (exec 2>/dev/null; ulimit -HSs 50) then (exec >/dev/null 2>&1; ulimit -v) && ulimitdashv=ok ulimit -HSs 50 #ulimit -HSd 8000 #test -n "$ulimitdashv" && ulimit -HSv 8000 echo "Stack limit is `ulimit -s`K"; echo "Heap limit is `ulimit -d`K"; test -n "$ulimitdashv" && echo "VMem limit is `ulimit -v`K"; else echo "Can't reset stack limit - this may take a while..." fi $M4 -L999999999 > $tmpfile 2>&1 ) result=$? exitcode=1 if test $result -eq 0 ; then echo "TEST DID NOT WORK - m4 did not abort. Output:" else # See if stack overflow was diagnosed case "`cat $tmpfile`" in *overflow*) echo "Test succeeded."; exitcode=0 ;; *ut*of*emory*) echo "*** Test is INCONCLUSIVE (ran out of heap before stack overflow)"; ;; *) echo "*** Test FAILED. $M4 aborted unexpectedly. Output:"; ;; esac fi if test -f core ; then ls -l core exitcode=1 fi #(test $exitcode -ne 0) && { echo "Output from $M4:"; cat $tmpfile; } exit $exitcode |
:: Command execute :: | |
--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.005 ]-- |