Fix last invalid read
authorBob Weinand <bobwei9@hotmail.com>
Mon, 3 Aug 2015 18:49:41 +0000 (20:49 +0200)
committerBob Weinand <bobwei9@hotmail.com>
Mon, 3 Aug 2015 18:49:41 +0000 (20:49 +0200)
Also revert debugging run-tests.php changes...

run-tests.php
sapi/phpdbg/phpdbg_list.c

index ae39fe4c71de6f53a96ca220308147848a1aa328..ba44ce54643c3e1a29c0441d9207095c50f8d25f 100755 (executable)
@@ -1878,7 +1878,7 @@ TEST $file
 
                if (version_compare($valgrind_version, '3.3.0', '>=')) {
                        /* valgrind 3.3.0+ doesn't have --log-file-exactly option */
-                       $cmd = "valgrind -q --tool=memcheck --trace-children=yes --show-leak-kinds=definite,indirect --log-file=$memcheck_filename $cmd";
+                       $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file=$memcheck_filename $cmd";
                } else {
                        $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file-exactly=$memcheck_filename $cmd";
                }
@@ -1933,7 +1933,7 @@ COMMAND $cmd
        $passed = false;
 
        if ($leak_check) { // leak check
-               $leaked = filesize($memcheck_filename) > 367;
+               $leaked = filesize($memcheck_filename) > 0;
 
                if (!$leaked) {
                        @unlink($memcheck_filename);
index 89e352a97148f08215181b11ec04ff42219e4db7..8369018fc9c76dedb86f4e953fe4ed3bfc4ebefd 100644 (file)
@@ -244,11 +244,11 @@ zend_op_array *phpdbg_compile_file(zend_file_handle *file, int type) {
                return NULL;
        }
 
-       data.buf = emalloc(data.len + 1);
+       data.buf = emalloc(data.len + ZEND_MMAP_AHEAD + 1);
        if (data.len > 0) {
                memcpy(data.buf, bufptr, data.len);
        }
-       data.buf[data.len] = 0;
+       memset(data.buf + data.len, 0, ZEND_MMAP_AHEAD + 1);
        data.filename = filename;
        data.line[0] = 0;