Changeset 1593 in svn


Ignore:
Timestamp:
2015-04-24T13:14:08Z (4 years ago)
Author:
Xuefer
Message:

eval requires "()"; show code for dangling array(..)

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/devel/sample.cpp.php

    r1584 r1593  
    703703exit();
    704704exit(1);
     705array(eval('array 1'));
     706array();
    705707
    706708?>
  • trunk/lib/Decompiler.class.php

    r1590 r1593  
    21912191                $type = ZEND_ENGINE_2_4 ? $ext : $op2['var']; // hack
    21922192                $keyword = $this->includeTypes[$type];
    2193                 $resvar = "$keyword " . str($this->getOpVal($op1, $EX));
     2193                $rvalue = str($this->getOpVal($op1, $EX));
     2194                if ($type == ZEND_EVAL) {
     2195                    $resvar = "$keyword($rvalue)";
     2196                }
     2197                else {
     2198                    $resvar = "$keyword $rvalue";
     2199                }
    21942200                break;
    21952201                // }}}
     
    22342240            case XC_FREE: // {{{
    22352241                $free = $T[$op1['var']];
    2236                 if (!is_a($free, 'Decompiler_Array') && !is_a($free, 'Decompiler_Box')) {
     2242                if (!is_a($free, 'Decompiler_Box')) {
    22372243                    $op['php'] = is_object($free) ? $free : $this->unquote($free, '(', ')');
    22382244                    $lastphpop = &$op;
Note: See TracChangeset for help on using the changeset viewer.