ID: 42338 User updated by: programatorfreez at gmail dot com Reported By: programatorfreez at gmail dot com Status: Open Bug Type: Scripting Engine problem Operating System: Gentoo GNU/Linux PHP Version: 5.2.4RC2 New Comment:
When i execute It without suhosin, the result is: http://pastebin.ca/662282 Previous Comments: ------------------------------------------------------------------------ [2007-08-18 15:10:52] programatorfreez at gmail dot com Description: ------------ [Sat Aug 18 16:24:38 2007] Script: '/var/www/localhost/htdocs/weblog/test.php' /var/tmp/portage/dev-lang/php-5.2.4_pre200708051230-r2/work/php5.2-200708051230/main/SAPI.c(940) : Freeing 0x082A9C38 (10 bytes), script=/var$ Last leak repeated 1 time === Total 2 memory leaks detected === Reproduce code: --------------- <?php // save as test.php into directory weblog in your HTDOCS if (!isset($_GET['test'])) { for ($i = 0; $i < 5; $i++) { // change $i < 5 to $i < 0 after first running of this script $query = str_repeat('[]', 1024); $url = 'http://127.0.0.1/weblog/test.php?test' . $query . '=1'; file_get_contents($url); } } echo 'finished'; ?> Expected result: ---------------- No memory leak =) Actual result: -------------- sh-3.2# USE_ZEND_ALLOC=0 valgrind --leak-check=full --gen-suppressions=yes php -f /var/www/localhost/htdocs/weblog/ test.php ==31902== Memcheck, a memory error detector. ==31902== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==31902== Using LibVEX rev 1732, a library for dynamic binary translation. ==31902== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==31902== Using valgrind-3.2.3, a dynamic binary instrumentation framework. ==31902== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==31902== For more details, rerun with: -v ==31902== Warning: file_get_contents(http://127.0.0.1/weblog/test.php?test[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]! [][][][][][][][][][][][][][][][][][ in /var/www/localhost/htdocs/weblog/test.php on line 6 finished==31902== ==31902== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 7 from 1) ==31902== malloc/free: in use at exit: 26,319 bytes in 1,505 blocks. ==31902== malloc/free: 17,148 allocs, 15,643 frees, 1,966,546 bytes allocated. ==31902== For counts of detected errors, rerun with: -v ==31902== searching for pointers to 1,505 not-freed blocks. ==31902== checked 1,359,216 bytes. ==31902== ==31902== LEAK SUMMARY: ==31902== definitely lost: 0 bytes in 0 blocks. ==31902== possibly lost: 0 bytes in 0 blocks. ==31902== still reachable: 26,319 bytes in 1,505 blocks. ==31902== suppressed: 0 bytes in 0 blocks. ==31902== Reachable blocks (those to which a pointer was found) are not shown. ==31902== To see them, rerun with: --leak-check=full --show-reachable=yes sh-3.2# USE_ZEND_ALLOC=0 valgrind --leak-check=full --gen-suppressions=yes --show-reachable=yes php -f /var/www/localhost/htdocs/weblog/test.php ==31907== Memcheck, a memory error detector. ==31907== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==31907== Using LibVEX rev 1732, a library for dynamic binary translation. ==31907== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==31907== Using valgrind-3.2.3, a dynamic binary instrumentation framework. ==31907== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==31907== For more details, rerun with: -v ==31907== Warning: file_get_contents(http://127.0.0.1/weblog/test.php?test[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]! [][][][][][][][][][][][][][][][][][ in /var/www/localhost/htdocs/weblog/test.php on line 6 finished==31907== ==31907== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 7 from 1) ==31907== malloc/free: in use at exit: 26,319 bytes in 1,505 blocks. ==31907== malloc/free: 17,148 allocs, 15,643 frees, 1,966,546 bytes allocated. ==31907== For counts of detected errors, rerun with: -v ==31907== searching for pointers to 1,505 not-freed blocks. ==31907== checked 1,359,216 bytes. ==31907== ==31907== 20 bytes in 1 blocks are still reachable in loss record 1 of 14 ==31907== at 0x4020B3D: calloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x40ED34B: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ---- Print suppression ? --- [Return/N/n/Y/y/C/c] ---- ==31907== ==31907== ==31907== 32 bytes in 1 blocks are still reachable in loss record 2 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x4CE1B8E: suhosin_hook_session (in /usr/lib/php5/lib/php/extensions/debug-non-zts-20060613/suhosin.so) ==31907== ==31907== ==31907== 56 bytes in 2 blocks are still reachable in loss record 3 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x400C55B: _dl_map_object_deps (in /lib/ld-2.5.so) ==31907== by 0x40115B0: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 67 bytes in 1 blocks are still reachable in loss record 4 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x400A51D: _dl_new_object (in /lib/ld-2.5.so) ==31907== by 0x40062E7: _dl_map_object_from_fd (in /lib/ld-2.5.so) ==31907== by 0x4008162: _dl_map_object (in /lib/ld-2.5.so) ==31907== by 0x4011555: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 67 bytes in 1 blocks are still reachable in loss record 5 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x4007664: expand_dynamic_string_token (in /lib/ld-2.5.so) ==31907== by 0x40080A2: _dl_map_object (in /lib/ld-2.5.so) ==31907== by 0x4011555: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 96 bytes in 1 blocks are still reachable in loss record 6 of 14 ==31907== at 0x4020B3D: calloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x400EFAC: _dl_check_map_versions (in /lib/ld-2.5.so) ==31907== by 0x4011838: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 188 bytes in 1 blocks are still reachable in loss record 7 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x4011398: add_to_global (in /lib/ld-2.5.so) ==31907== by 0x4011785: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 256 bytes in 1 blocks are still reachable in loss record 8 of 14 ==31907== at 0x4022BA0: realloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x83C799C: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 556 bytes in 1 blocks are still reachable in loss record 9 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x46D48A4: _db_push_ (in /usr/lib/mysql/libmysqlclient.so.15.0.0) ==31907== ==31907== ==31907== 667 bytes in 1 blocks are still reachable in loss record 10 of 14 ==31907== at 0x4020B3D: calloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x400A268: _dl_new_object (in /lib/ld-2.5.so) ==31907== by 0x40062E7: _dl_map_object_from_fd (in /lib/ld-2.5.so) ==31907== by 0x4008162: _dl_map_object (in /lib/ld-2.5.so) ==31907== by 0x4011555: dl_open_worker (in /lib/ld-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x4010FD3: _dl_open (in /lib/ld-2.5.so) ==31907== by 0x40ECE3C: (within /lib/libdl-2.5.so) ==31907== by 0x400D6E5: _dl_catch_error (in /lib/ld-2.5.so) ==31907== by 0x40ED2DB: (within /lib/libdl-2.5.so) ==31907== by 0x40ECD73: dlopen (in /lib/libdl-2.5.so) ==31907== by 0x82C13C5: php_dl (in /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 1,024 bytes in 1 blocks are still reachable in loss record 11 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x83C6DC8: (within /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 1,024 bytes in 1 blocks are still reachable in loss record 12 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x83AEA28: (within /usr/lib/php5/bin/php) ==31907== by 0x8090FD0: (within /usr/lib/php5/bin/php) ==31907== ==31907== ==31907== 4,096 bytes in 1 blocks are still reachable in loss record 13 of 14 ==31907== at 0x4022BA0: realloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x457F8A3: (within /usr/lib/libcrypto.so.0.9.8) ==31907== ==31907== ==31907== 18,170 bytes in 1,491 blocks are still reachable in loss record 14 of 14 ==31907== at 0x4022A7E: malloc (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==31907== by 0x457F86B: (within /usr/lib/libcrypto.so.0.9.8) ==31907== ==31907== LEAK SUMMARY: ==31907== definitely lost: 0 bytes in 0 blocks. ==31907== possibly lost: 0 bytes in 0 blocks. ==31907== still reachable: 26,319 bytes in 1,505 blocks. ==31907== suppressed: 0 bytes in 0 blocks. Apache error_log: ][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][$ [Sat Aug 18 16:24:38 2007] Script: '/var/www/localhost/htdocs/weblog/test.php' /var/tmp/portage/dev-lang/php-5.2.4_pre200708051230-r2/work/php5.2-200708051230/main/SAPI.c(940) : Freeing 0x082A9C38 (10 bytes), script=/var$ Last leak repeated 1 time === Total 2 memory leaks detected === ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42338&edit=1