[PHP-BUG] Bug #65761 [NEW]: comma at end of enumerator list
From: xuefer at gmail dot com Operating system: Linux PHP version: 5.5.4 Package: Compile Warning Bug Type: Bug Bug description:comma at end of enumerator list Description: php/Zend/zend.h:283:15: warning: comma at end of enumerator list [-pedantic] typedef enum { SUCCESS = 0, FAILURE = -1, <- line 283 } ZEND_RESULT_CODE; This is not allowed in C89, but allowed in C99. yet not allowed in C++ I'm not sure if this is consider as a bug as PHP 5.5 is moving forward for new compiler by dropping support to older ones. But it's better to fix it for building extension that support multiple PHP versions -- Edit bug report at https://bugs.php.net/bug.php?id=65761&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=65761&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=65761&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=65761&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=65761&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=65761&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=65761&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=65761&r=needscript Try newer version: https://bugs.php.net/fix.php?id=65761&r=oldversion Not developer issue:https://bugs.php.net/fix.php?id=65761&r=support Expected behavior: https://bugs.php.net/fix.php?id=65761&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=65761&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=65761&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=65761&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=65761&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=65761&r=dst IIS Stability: https://bugs.php.net/fix.php?id=65761&r=isapi Install GNU Sed:https://bugs.php.net/fix.php?id=65761&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=65761&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=65761&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=65761&r=mysqlcfg
[PHP-BUG] Bug #65764 [NEW]: generators/throw_rethrow FAIL with ZEND_COMPILE_EXTENDED_INFO
From: xuefer at gmail dot com Operating system: Linux PHP version: 5.5.4 Package: Scripting Engine problem Bug Type: Bug Bug description:generators/throw_rethrow FAIL with ZEND_COMPILE_EXTENDED_INFO Description: with CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO; the following tests fail FAIL Generator::throw() where the exception is caught in the generator [Zend/tests/generators/throw_caught.phpt] FAIL Generator::throw() where the generator throws a different exception [Zend/tests/generators/throw_rethrow.phpt] ~/src/php/php5.5/Zend/tests/generators/throw_caught.log EXPECTED OUTPUT exception 'RuntimeException' with message 'Test' in %s:%d Stack trace: #0 {main} string(6) "result" ACTUAL OUTPUT Fatal error: Uncaught exception 'RuntimeException' with message 'Test' in /home/xuefer/src/php/php5.5/Zend/tests/generators/throw_caught.php:14 Stack trace: #0 {main} thrown in /home/xuefer/src/php/php5.5/Zend/tests/generators/throw_caught.php on line 14 FAILED ~/src/php/php5.5/Zend/tests/generators/throw_rethrow.log EXPECTED OUTPUT Caught: exception 'RuntimeException' with message 'throw' in %s:%d Stack trace: #0 {main} Fatal error: Uncaught exception 'LogicException' with message 'new throw' in %s:%d Stack trace: #0 [internal function]: gen() #1 %s(%d): Generator->throw(Object(RuntimeException)) #2 {main} thrown in %s on line %d ACTUAL OUTPUT Fatal error: Uncaught exception 'RuntimeException' with message 'throw' in /home/xuefer/src/php/php5.5/Zend/tests/generators/throw_rethrow.php:14 Stack trace: #0 {main} thrown in /home/xuefer/src/php/php5.5/Zend/tests/generators/throw_rethrow.php on line 14 FAILED -- Edit bug report at https://bugs.php.net/bug.php?id=65764&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=65764&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=65764&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=65764&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=65764&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=65764&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=65764&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=65764&r=needscript Try newer version: https://bugs.php.net/fix.php?id=65764&r=oldversion Not developer issue:https://bugs.php.net/fix.php?id=65764&r=support Expected behavior: https://bugs.php.net/fix.php?id=65764&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=65764&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=65764&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=65764&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=65764&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=65764&r=dst IIS Stability: https://bugs.php.net/fix.php?id=65764&r=isapi Install GNU Sed:https://bugs.php.net/fix.php?id=65764&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=65764&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=65764&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=65764&r=mysqlcfg
[PHP-BUG] Bug #61506 [NEW]: insteadof cause memory leak if class is not binded
From: Operating system: linux PHP version: 5.4.0 Package: *Compile Issues Bug Type: Bug Bug description:insteadof cause memory leak if class is not binded Description: when class is not binded, "insteadof" cause a detected memory leak. see the following script and output == after days tracking, i lock on _destroy_zend_class_traits_info if (ce->trait_precedences) { size_t i = 0; while (ce->trait_precedences[i]) { efree((char*)ce->trait_precedences[i]->trait_method->method_name); efree((char*)ce->trait_precedences[i]->trait_method->class_name); efree(ce->trait_precedences[i]->trait_method); if (ce->trait_precedences[i]->exclude_from_classes) { efree(ce->trait_precedences[i]->exclude_from_classes); <- before this line } ce->trait_precedences[i]->exclude_from_classes[0] is string, should but not efree'ed, this is why it's leaking. however when the class is bind, it is zend_class_entry and should not efree Test script: --- https://bugs.php.net/bug.php?id=61506&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=61506&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=61506&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=61506&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=61506&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=61506&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=61506&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=61506&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=61506&r=needscript Try newer version: https://bugs.php.net/fix.php?id=61506&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=61506&r=support Expected behavior: https://bugs.php.net/fix.php?id=61506&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=61506&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=61506&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=61506&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=61506&r=php4 Daylight Savings:https://bugs.php.net/fix.php?id=61506&r=dst IIS Stability: https://bugs.php.net/fix.php?id=61506&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=61506&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=61506&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=61506&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=61506&r=mysqlcfg
[PHP-BUG] Bug #62432 [NEW]: ReflectionMethod random corrupt memory on high concurrent
From: xuefer at gmail dot com Operating system: Windows PHP version: 5.3.14 Package: Reflection related Bug Type: Bug Bug description:ReflectionMethod random corrupt memory on high concurrent Description: ReflectionMethod crash zend memory manager randomly on high concurrent Configuration File (php.ini) Path C:\Windows Loaded Configuration File (none) Scan this dir for additional .ini files (none) Additional .ini files parsed(none) Zend Extension BuildAPI220090626,TS,VC9 PHP Extension Build API20090626,TS,VC9 Debug Build no Thread Safety enabled Zend Memory Manager enabled Configuration apache2handler Apache Version Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t PHP/5.3.14 apache is loaded with module alias_module authz_host_module and php, nothing else Test script: --- ab.exe -n 3 -c 60 http://localhost/test.php This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Total of 983 requests completed apr_poll: The timeout specified has expired (70007) Expected result: no crash Actual result: -- The thread 'Win32 Thread' (0x1e98) has exited with code 0 (0x0). Unhandled exception at 0x69e2c7d7 (php5ts.dll) in httpd.exe: 0xC005: Access violation reading location 0x29bffacc. > php5ts.dll!_zend_mm_free_int(_zend_mm_heap * heap=0x0edf8a20, void * p=0x) Line 2028C php5ts.dll!_efree(void * ptr=0x023dd588) Line 2361 + 0xa bytes C php5ts.dll!_zval_dtor_func(_zval_struct * zvalue=0x023fe918) Line 36 + 0xc bytes C php5ts.dll!_zval_ptr_dtor(_zval_struct * * zval_ptr=0x10f00dbc) Line 447 + 0xc bytes C php5ts.dll!_zend_hash_add_or_update(_hashtable * ht=0x10f00d80, const char * arKey=0x6a1b4d00, unsigned int nKeyLength=0x0006, void * pData=0x0995fab8, unsigned int nDataSize=0x0004, void * * pDest=0x, int flag=0x0001) Line 237 + 0x6 bytes C php5ts.dll!zim_reflection_method___construct(int ht=0x0001, _zval_struct * return_value=0x10f02778, _zval_struct * * return_value_ptr=0x, _zval_struct * this_ptr=0x10f00d60, int return_value_used=0x, void * * * tsrm_ls=0x0efbb728) Line 2532 C php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data * execute_data=0x10f30080, void * * * tsrm_ls=0x0efbb701) Line 320 + 0x41 bytes C php5ts.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data * execute_data=0x0005, void * * * tsrm_ls=0x0f0c4868) Line 426 C php5ts.dll!execute(_zend_op_array * op_array=0x10f00880, void * * * tsrm_ls=0x0efbb700) Line 107 + 0xa bytes C php5ts.dll!zend_execute_scripts(int type=0x0008, void * * * tsrm_ls=0x0efbb728, _zval_struct * * retval=0x, int file_count=0x0003, ...) Line 1237 C php5ts.dll!php_execute_script(_zend_file_handle * primary_file=0x0995fe34, void * * * tsrm_ls=0x0efbb728) Line 2308 + 0x12 bytes C php5apache2_2.dll!php_handler(request_rec * r=0x0bc82100) Line 669 + 0xe bytes C libhttpd.dll!6ff02435() [Frames below may be incorrect and/or missing, no symbols loaded for libhttpd.dll] libhttpd.dll!6ff027c0() libhttpd.dll!6ff0f01e() libhttpd.dll!6ff0adbc() libhttpd.dll!6ff050a5() libhttpd.dll!6ff05363() libhttpd.dll!6ff1df6c() msvcrt.dll!74921287() msvcrt.dll!74921328() kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes -- Edit bug report at https://bugs.php.net/bug.php?id=62432&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=62432&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=62432&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=62432&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=62432&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=62432&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=62432&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=62432&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=62432&r=needscript Try newer version: https://bugs.php.net/fix.php?id=62432&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=62432&r=support Expected behav
#45837 [NEW]: open_basedir failed for building outside of source tree
From: xuefer at gmail dot com Operating system: linux PHP version: 5.3CVS-2008-08-17 (CVS) PHP Bug Type: Safe Mode/open_basedir Bug description: open_basedir failed for building outside of source tree Description: my php is built outside of the php source tree, i'm not sure if this is the reason as i haven't try to built php witin source tree yet. looks like most of the open_basedir* test failed and btw tests/basic/bug20539.phpt also failed due to the same problem imho. Reproduce code: --- ~/src/php5 $ cd ../php5-debug-zts ~/src/php5-debug-zts $ ../php5/configure ... ~/src/php5-debug-zts $ make && make test Actual result: -- Bug #20539 (PHP CLI Segmentation Fault) [tests/basic/bug20539.phpt] Test open_basedir configuration [tests/security/open_basedir_chdir.phpt] Test open_basedir configuration [tests/security/open_basedir_chmod.phpt] Test open_basedir configuration [tests/security/open_basedir_copy.phpt] Test open_basedir configuration [tests/security/open_basedir_copy_variation1.phpt] Test open_basedir configuration [tests/security/open_basedir_dir.phpt] Test open_basedir configuration [tests/security/open_basedir_disk_free_space.phpt] Test open_basedir configuration [tests/security/open_basedir_error_log.phpt] Test open_basedir configuration [tests/security/open_basedir_error_log_variation.phpt] Test open_basedir configuration [tests/security/open_basedir_file.phpt] Test open_basedir configuration [tests/security/open_basedir_file_exists.phpt] Test open_basedir configuration [tests/security/open_basedir_file_get_contents.phpt] Test open_basedir configuration [tests/security/open_basedir_file_put_contents.phpt] Test open_basedir configuration [tests/security/open_basedir_fileatime.phpt] Test open_basedir configuration [tests/security/open_basedir_filectime.phpt] Test open_basedir configuration [tests/security/open_basedir_filegroup.phpt] Test open_basedir configuration [tests/security/open_basedir_fileinode.phpt] Test open_basedir configuration [tests/security/open_basedir_filemtime.phpt] Test open_basedir configuration [tests/security/open_basedir_fileowner.phpt] Test open_basedir configuration [tests/security/open_basedir_fileperms.phpt] Test open_basedir configuration [tests/security/open_basedir_filesize.phpt] Test open_basedir configuration [tests/security/open_basedir_filetype.phpt] Test open_basedir configuration [tests/security/open_basedir_fopen.phpt] Test open_basedir configuration [tests/security/open_basedir_glob.phpt] Test open_basedir configuration [tests/security/open_basedir_is_dir.phpt] Test open_basedir configuration [tests/security/open_basedir_is_executable.phpt] Test open_basedir configuration [tests/security/open_basedir_is_file.phpt] Test open_basedir configuration [tests/security/open_basedir_is_link.phpt] Test open_basedir configuration [tests/security/open_basedir_is_readable.phpt] Test open_basedir configuration [tests/security/open_basedir_is_writable.phpt] Test open_basedir configuration [tests/security/open_basedir_link.phpt] Test open_basedir configuration [tests/security/open_basedir_linkinfo.phpt] Test open_basedir configuration [tests/security/open_basedir_lstat.phpt] Test open_basedir configuration [tests/security/open_basedir_opendir.phpt] Test open_basedir configuration [tests/security/open_basedir_readlink.phpt] Test open_basedir configuration [tests/security/open_basedir_rename.phpt] Test open_basedir configuration [tests/security/open_basedir_rmdir.phpt] Test open_basedir configuration [tests/security/open_basedir_scandir.phpt] Test open_basedir configuration [tests/security/open_basedir_stat.phpt] Test open_basedir configuration [tests/security/open_basedir_symlink.phpt] Test open_basedir configuration [tests/security/open_basedir_tempnam.phpt] Test open_basedir configuration [tests/security/open_basedir_touch.phpt] Test open_basedir configuration [tests/security/open_basedir_unlink.phpt] /home/xuefer/src/php5/tests/basic/bug20539.phpt Warning: Unknown: open(./tests/basic//sess_e1122b5c18b3b0ef0b69cbc36c5d0d0f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Cannot send session cookie - headers already sent in Unknown on line 0 Warning: Unknown: Cannot send session cache limiter - headers already sent in Unknown on line 0 good :) Warning: unlink(/home/xuefer/src/php5/tests/basic/sess_e1122b5c18b3b0ef0b69cbc36c5d0d0f): No such file or directory in /home/xuefer/src/php5/tests/basic/bug20539.php on line 3 Warning: Unknown: open(./tests/basic//sess_e1122b5c18b3b0ef0b69cbc36c5d0d0f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (./tests/
#45841 [NEW]: wrong test case about . and .. order
From: xuefer at gmail dot com Operating system: linux PHP version: 5.3CVS-2008-08-17 (CVS) PHP Bug Type: Unknown/Other Function Bug description: wrong test case about . and .. order Description: at least both tests/dir/readdir_variation2.phpt tests/dir/rewinddir_variation2.phpt assume that directory entry "." is before ".." but it is not in my case Test readdir() function : usage variations - empty directories [/home/xuefer/src/php5/ext/standard/tests/dir/readdir_variation2.phpt] EXPECTED OUTPUT *** Testing readdir() : usage variations *** -- Pass an empty directory to readdir() -- string(1) "." string(2) ".." ===DONE=== ACTUAL OUTPUT *** Testing readdir() : usage variations *** -- Pass an empty directory to readdir() -- string(2) ".." string(1) "." ===DONE=== FAILED Test rewinddir() function : usage variations - operate on a closed directory [/home/xuefer/src/php5/ext/standard/tests/dir/rewinddir_variation2.phpt] EXPECTED OUTPUT *** Testing rewinddir() : usage variations *** -- Create the directory handle, read and close the directory -- resource(%d) of type (stream) string(1) "." -- Call to rewinddir() -- Warning: rewinddir(): %d is not a valid Directory resource in %s on line %d bool(false) ===DONE=== ACTUAL OUTPUT *** Testing rewinddir() : usage variations *** -- Create the directory handle, read and close the directory -- resource(5) of type (stream) string(2) ".." -- Call to rewinddir() -- Warning: rewinddir(): 5 is not a valid Directory resource in /home/xuefer/src/php5/ext/standard/tests/dir/rewinddir_variation2.php on line 23 bool(false) ===DONE=== FAILED -- Edit bug report at http://bugs.php.net/?id=45841&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=45841&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=45841&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=45841&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=45841&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=45841&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=45841&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=45841&r=needscript Try newer version:http://bugs.php.net/fix.php?id=45841&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=45841&r=support Expected behavior:http://bugs.php.net/fix.php?id=45841&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=45841&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=45841&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=45841&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=45841&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=45841&r=dst IIS Stability:http://bugs.php.net/fix.php?id=45841&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=45841&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=45841&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=45841&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=45841&r=mysqlcfg
#45837 [Ver]: open_basedir failed for building outside of source tree
ID: 45837 User updated by: xuefer at gmail dot com Reported By: xuefer at gmail dot com Status: Verified Bug Type: Safe Mode/open_basedir Operating System: linux PHP Version: 5.3CVS ZTS New Comment: forgot to note that, when it is build outside of source tree, there're more test cases failed than i listed Previous Comments: [2008-08-17 09:28:24] [EMAIL PROTECTED] Reproducible on ZTS builds [2008-08-17 03:28:44] xuefer at gmail dot com Description: my php is built outside of the php source tree, i'm not sure if this is the reason as i haven't try to built php witin source tree yet. looks like most of the open_basedir* test failed and btw tests/basic/bug20539.phpt also failed due to the same problem imho. Reproduce code: --- ~/src/php5 $ cd ../php5-debug-zts ~/src/php5-debug-zts $ ../php5/configure ... ~/src/php5-debug-zts $ make && make test Actual result: -- Bug #20539 (PHP CLI Segmentation Fault) [tests/basic/bug20539.phpt] Test open_basedir configuration [tests/security/open_basedir_chdir.phpt] Test open_basedir configuration [tests/security/open_basedir_chmod.phpt] Test open_basedir configuration [tests/security/open_basedir_copy.phpt] Test open_basedir configuration [tests/security/open_basedir_copy_variation1.phpt] Test open_basedir configuration [tests/security/open_basedir_dir.phpt] Test open_basedir configuration [tests/security/open_basedir_disk_free_space.phpt] Test open_basedir configuration [tests/security/open_basedir_error_log.phpt] Test open_basedir configuration [tests/security/open_basedir_error_log_variation.phpt] Test open_basedir configuration [tests/security/open_basedir_file.phpt] Test open_basedir configuration [tests/security/open_basedir_file_exists.phpt] Test open_basedir configuration [tests/security/open_basedir_file_get_contents.phpt] Test open_basedir configuration [tests/security/open_basedir_file_put_contents.phpt] Test open_basedir configuration [tests/security/open_basedir_fileatime.phpt] Test open_basedir configuration [tests/security/open_basedir_filectime.phpt] Test open_basedir configuration [tests/security/open_basedir_filegroup.phpt] Test open_basedir configuration [tests/security/open_basedir_fileinode.phpt] Test open_basedir configuration [tests/security/open_basedir_filemtime.phpt] Test open_basedir configuration [tests/security/open_basedir_fileowner.phpt] Test open_basedir configuration [tests/security/open_basedir_fileperms.phpt] Test open_basedir configuration [tests/security/open_basedir_filesize.phpt] Test open_basedir configuration [tests/security/open_basedir_filetype.phpt] Test open_basedir configuration [tests/security/open_basedir_fopen.phpt] Test open_basedir configuration [tests/security/open_basedir_glob.phpt] Test open_basedir configuration [tests/security/open_basedir_is_dir.phpt] Test open_basedir configuration [tests/security/open_basedir_is_executable.phpt] Test open_basedir configuration [tests/security/open_basedir_is_file.phpt] Test open_basedir configuration [tests/security/open_basedir_is_link.phpt] Test open_basedir configuration [tests/security/open_basedir_is_readable.phpt] Test open_basedir configuration [tests/security/open_basedir_is_writable.phpt] Test open_basedir configuration [tests/security/open_basedir_link.phpt] Test open_basedir configuration [tests/security/open_basedir_linkinfo.phpt] Test open_basedir configuration [tests/security/open_basedir_lstat.phpt] Test open_basedir configuration [tests/security/open_basedir_opendir.phpt] Test open_basedir configuration [tests/security/open_basedir_readlink.phpt] Test open_basedir configuration [tests/security/open_basedir_rename.phpt] Test open_basedir configuration [tests/security/open_basedir_rmdir.phpt] Test open_basedir configuration [tests/security/open_basedir_scandir.phpt] Test open_basedir configuration [tests/security/open_basedir_stat.phpt] Test open_basedir configuration [tests/security/open_basedir_symlink.phpt] Test open_basedir configuration [tests/security/open_basedir_tempnam.phpt] Test open_basedir configuration [tests/security/open_basedir_touch.phpt] Test open_basedir configuration [tests/security/open_basedir_unlink.phpt] /home/xuefer/src/php5/tests/basic/bug20539.phpt Warning: Unknown: open(./tests/basic//sess_e1122b5c18b3b0ef0b69cbc36c5d0d0f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Cannot send session cookie - headers already sent in Unknown on line 0 Warning: Unknown: Cannot send session cache limiter - headers already sent in Unknown on line 0 good :) Warning: unlink(/home/xuef
#46194 [NEW]: SIGSEGV when requested file is not found
From: xuefer at gmail dot com Operating system: linux PHP version: 5.3CVS-2008-09-29 (CVS) PHP Bug Type: CGI related Bug description: SIGSEGV when requested file is not found Description: i have setup lighttpd + fastcgi + php, it used to work with old php but not with 5.3 (not sure about 5.2) "localhost:1026" => ( "host" => "127.0.0.1", "port" => 2048, "check-local" => "disable", "disable-time" => 1, "broken-scriptfilename" => "enable", ), be aware that it is check-local => disable, which mean lighttpd won't check if the file is exists but will forward the request to php anyway when i try to request a non existing file, php SIGSEGV Program received signal SIGSEGV, Segmentation fault. 0x4b319f51 in strstr () from /lib/libc.so.6 (gdb) bt #0 0x4b319f51 in strstr () from /lib/libc.so.6 #1 0x082292c1 in phar_compile_file (file_handle=0xbfec434c, type=8) at /home/xuefer/src/php/php5/ext/phar/phar.c:3294 #2 0x0849d9b2 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /home/xuefer/src/php/php5/Zend/zend.c:1189 #3 0x08433dbb in php_execute_script (primary_file=0xbfec434c) at /home/xuefer/src/php/php5/main/main.c:2080 #4 0x0852e362 in main (argc=3, argv=0xbfec44b4) at /home/xuefer/src/php/php5/sapi/cgi/cgi_main.c:1980 (gdb) up #1 0x082292c1 in phar_compile_file (file_handle=0xbfec434c, type=8) at /home/xuefer/src/php/php5/ext/phar/phar.c:3294 3294if (strstr(file_handle->filename, ".phar") && !strstr(file_handle->filename, "://")) { (gdb) p file_handle[0] $2 = {type = ZEND_HANDLE_FILENAME, filename = 0x0, opened_path = 0x0, handle = {fd = 0, fp = 0x0, stream = {handle = 0x0, isatty = 0, mmap = {len = 0, pos = 1, map = 0x83f, buf = 0xb7f14878 "j®\t\b\020ii\r", old_handle = 0xb7f15000, old_closer = 0x807ba17}, reader = 0x4b2b9840, fsizer = 0x805f4a4, closer = 0x1}}, free_filename = 0 '\0'} -- Edit bug report at http://bugs.php.net/?id=46194&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=46194&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=46194&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=46194&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=46194&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=46194&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=46194&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=46194&r=needscript Try newer version:http://bugs.php.net/fix.php?id=46194&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=46194&r=support Expected behavior:http://bugs.php.net/fix.php?id=46194&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=46194&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=46194&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=46194&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=46194&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=46194&r=dst IIS Stability:http://bugs.php.net/fix.php?id=46194&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=46194&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=46194&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=46194&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=46194&r=mysqlcfg
#46194 [Fbk->Opn]: SIGSEGV when requested file is not found
ID: 46194 User updated by: xuefer at gmail dot com Reported By: xuefer at gmail dot com -Status: Feedback +Status: Open Bug Type: PHAR related Operating System: linux PHP Version: 5.3CVS-2008-09-29 (CVS) Assigned To: cellog New Comment: ok, it seems fixed with your patch, but i don't think it right. why filename can be NULL before it is past to compile file? with php5.2-CVS cgi-fcgi: No input file specified. with php5.3-CVS and phar patch (or disable phar) Fatal error: Unknown: Failed opening required '' (include_path='.:') in Unknown on line 0 something changed in cgi, many zend extensions might be affected $ diff ~/src/php/php5.2/sapi/cgi/cgi_main.c ~/src/php/php5/sapi/cgi/cgi_main.c yeah... there are big changes $ diff -u ~/src/php/php5.2/sapi/cgi/cgi_main.c ~/src/php/php5/sapi/cgi/cgi_main.c |grep 'No input file specified' -C 5 + SG(sapi_headers).http_response_code = 403; + PUTS("Access denied.\n"); } else { - len += strlen(argv[i]); + SG(sapi_headers).http_response_code = 404; + PUTS("No input file specified.\n"); + } + /* we want to serve more requests if this is fastcgi + so cleanup and continue, request shutdown is + handled later */ + if (fastcgi) { -- - if (errno == EACCES) { - SG(sapi_headers).http_response_code = 403; - PUTS("Access denied.\n"); - } else { - SG(sapi_headers).http_response_code = 404; - PUTS("No input file specified.\n"); - } -#if PHP_FASTCGI - /* we want to serve more requests if this is fastcgi - so cleanup and continue, request shutdown is - handled later */ i'm not sure when will 5.3 cgi-fcgi prints out "No input file specified" which used to be print by 5.2, are you? summary: 1. "Fatal error" just does not make sense here. it should be legal to pass any request including which might cause "404 File not found", from the webserver to php cgi-fcgi backend, and php should issue 404 error like 5.2 does otherwise i have to set up a. webserver(frontend) on server1 -> webserver + mod_php(backend) on server2, or b. webserver(frontend, check-local=disabled) on server 1 -> webserver(backend, check-local=enabled to produce 404) -> php cgi-fcgi (backend) 2. passing file_handle == NULL || file_handle->filename == NULL does not make sense, it breaks zend extensions that hook zend_compile_file, like phar, apc, ZendOptimizer, XCache, Xdebug, eaccelerator, blahblah... as you assigned it to phar category, i ask your advise Previous Comments: [2008-09-29 13:02:10] [EMAIL PROTECTED] Please try this simple patch found at http://pear.php.net/~greg/fixbug46194.patch.txt Index: ext/phar/phar.c === RCS file: /repository/php-src/ext/phar/phar.c,v retrieving revision 1.370.2.45 diff -u -r1.370.2.45 phar.c --- ext/phar/phar.c 13 Sep 2008 22:30:55 - 1.370.2.45 +++ ext/phar/phar.c 29 Sep 2008 13:00:22 - @@ -3286,6 +3286,9 @@ int failed; phar_archive_data *phar; + if (!file_handle || !file_handle->filename) { + return phar_orig_compile_file(file_handle, type TSRMLS_CC); + } if (strstr(file_handle->filename, ".phar") && !strstr(file_handle->filename, "://")) { if (SUCCESS == phar_open_from_filename(file_handle->filename, strlen(file_handle->filename), NULL, 0, 0, &phar, NULL TSRMLS_CC)) { if (phar->is_zip || phar->is_tar) { [2008-09-29 11:13:16] [EMAIL PROTECTED] Seems to be PHAR related issue (once again) so the quick fix: disable phar. This is quite critical bug.. [2008-09-29 03:13:05] xuefer at gmail dot com Description: i have setup lighttpd + fastcgi + php, it used to work with old php but not with 5.3 (not sure about 5.2) "localhost:1026" => ( "host" => "127.0.0.1", "port" => 2048, "check-local" => "disable", "disable-time" => 1, "broken-scriptfilename" => "enable", ), be aware that it is check-local => disable, which mean lighttpd won't check if the file is exists but will forward the request to php anyway when i try to request a non existing file, php SIGSEGV
#44654 [NEW]: wired syntax error for #
From: xuefer at gmail dot com Operating system: PHP version: 5.3CVS-2008-04-06 (CVS) PHP Bug Type: Compile Failure Bug description: wired syntax error for # Description: $ php -r 'if (1) { ?># ## 2.php # # expected: #1#1 actual: # # Expected result: used to work in php5.2 IIRC and echo # character Actual result: -- Parse error: syntax error, unexpected $end in Command line code on line 1 -- Edit bug report at http://bugs.php.net/?id=44654&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=44654&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=44654&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=44654&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=44654&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=44654&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=44654&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=44654&r=needscript Try newer version:http://bugs.php.net/fix.php?id=44654&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=44654&r=support Expected behavior:http://bugs.php.net/fix.php?id=44654&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=44654&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=44654&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=44654&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=44654&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=44654&r=dst IIS Stability:http://bugs.php.net/fix.php?id=44654&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=44654&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=44654&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=44654&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=44654&r=mysqlcfg
#44654 [Opn]: Syntax error for #
ID: 44654 User updated by: xuefer at gmail dot com Reported By: xuefer at gmail dot com Status: Open Bug Type: Compile Failure Operating System: * PHP Version: 5.3CVS-2008-04-06 (CVS) New Comment: tested with cli and fastcgi web (not cgi), so not a shebang problem. we're talking about this bug at mailinglist and looks like it's relatived to re2c lexer changes recentl Previous Comments: [2008-04-07 08:05:55] [EMAIL PROTECTED] Are you running PHP in CGI mode? If so then it might be the CGI shebang doing funky stuff after my guessings atleast in 2.php even though it isn't #! as shebangs normally are... For the CLI example I think (from memories) that you can't break in and out of php with the -r option. [2008-04-06 14:19:03] xuefer at gmail dot com Description: $ php -r 'if (1) { ?># ## 2.php # # expected: #1#1 actual: # # Expected result: used to work in php5.2 IIRC and echo # character Actual result: -- Parse error: syntax error, unexpected $end in Command line code on line 1 -- Edit this bug report at http://bugs.php.net/?id=44654&edit=1
#44959 [NEW]: & is not recognized correctly by url_rewriter
From: xuefer at gmail dot com Operating system: gentoo PHP version: 5.2.6 PHP Bug Type: URL related Bug description: & is not recognized correctly by url_rewriter Description: &#; in href is not recognized correctly by url rewriter scanner the original code was and i encoded the first / to trap some bot that don't recognize & and nofollow correctly so it is , nofollow is not required to reproduce the bug Reproduce code: --- Expected result: Actual result: -- -- Edit bug report at http://bugs.php.net/?id=44959&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=44959&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=44959&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=44959&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=44959&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=44959&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=44959&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=44959&r=needscript Try newer version:http://bugs.php.net/fix.php?id=44959&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=44959&r=support Expected behavior:http://bugs.php.net/fix.php?id=44959&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=44959&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=44959&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=44959&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=44959&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=44959&r=dst IIS Stability:http://bugs.php.net/fix.php?id=44959&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=44959&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=44959&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=44959&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=44959&r=mysqlcfg
#42132 [NEW]: suggest a fix for global object got destructed in output buffer handler
From: xuefer at gmail dot com Operating system: gentoo linux PHP version: 5CVS-2007-07-28 (CVS) PHP Bug Type: Scripting Engine problem Bug description: suggest a fix for global object got destructed in output buffer handler Description: it seems that the implicit ob_end_flush() is called after object destructions. uncomment any ONE of the comments gives "okay". but this is not the official trick that supported by php. the php bug system suggest me this bug is by design in #39546 #39629 etc. there's many register_xxx arround my php files, which install data into a global object, and the output buffer handler will inject the data into the output in the correct place. if this bug is not fixed, the only way i can do is to rewrite the object into array/functions anyway, i have a suggested fix to change the work flow a bit: 1. flush and pop all OBs but leave 1 top OB on shutdown 2. destruct objects 3. flush the last OB if there's any no matter if this bug is gonna be fixed, there shall be a page that give explanation and work arround to this issue. Reproduce code: --- Expected result: okay Actual result: -- oops -- Edit bug report at http://bugs.php.net/?id=42132&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=42132&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=42132&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=42132&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=42132&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=42132&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=42132&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=42132&r=needscript Try newer version:http://bugs.php.net/fix.php?id=42132&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=42132&r=support Expected behavior:http://bugs.php.net/fix.php?id=42132&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=42132&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=42132&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=42132&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42132&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=42132&r=dst IIS Stability:http://bugs.php.net/fix.php?id=42132&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=42132&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=42132&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=42132&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=42132&r=mysqlcfg
#42946 [NEW]: sendmail default to empty when not found at configure time
From: xuefer at gmail dot com Operating system: linux PHP version: 5.2.4 PHP Bug Type: Mail related Bug description: sendmail default to empty when not found at configure time Description: when sendmail is not found at configure time, PHP_PROG_SENDMAIL is defined as "" in main/php_config.h, so DEFAULT_SENDMAIL_PATH is defined as "" " -t -i ". this lead to no error message and mail() just return false. Reproduce code: --- $ rm /usr/sbin/sendmail $ ./configure $ make (now go install /usr/sbin/sendmail with any packages like rpm) (and you have /usr/sbin/sendmail after php is built) $ ./sapi/cli/php testmail.php Expected result: php should use "/usr/sbin/sendmail -t -i" to send email Actual result: -- php try to execute " -t -i" -- Edit bug report at http://bugs.php.net/?id=42946&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=42946&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=42946&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=42946&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=42946&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=42946&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=42946&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=42946&r=needscript Try newer version:http://bugs.php.net/fix.php?id=42946&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=42946&r=support Expected behavior:http://bugs.php.net/fix.php?id=42946&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=42946&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=42946&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=42946&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42946&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=42946&r=dst IIS Stability:http://bugs.php.net/fix.php?id=42946&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=42946&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=42946&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=42946&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=42946&r=mysqlcfg
#36567 [NEW]: $obj->arr[] with __set/__get cause data corrupted without any warning
From: xuefer at gmail dot com Operating system: gentoo PHP version: 5CVS-2006-03-01 (CVS) PHP Bug Type: Scripting Engine problem Bug description: $obj->arr[] with __set/__get cause data corrupted without any warning Description: yeah, i know using "$obj->arr[]" with __set/__get, the result is undefined. but shouldn't it be denied? because it's causing really bad side effect now... and hard to debug if there's no warning. it's hard to know the instance $obj will be used as $obj->arr[] = ''; else where, if the project is big enough, while u implement __set/__get for classes happily relatived bug: http://bugs.php.net/bug.php?id=33941 Reproduce code: --- vars = $vars; } public function __get($key) { echo "get $key\n"; return $this->vars[$key]; } public function __set($key, $value) { echo "set $key to $value \n"; $this->vars[$key] = $value; } } $vars = array('test' => array(0 => "")); $obj = new test($vars); $obj->test[0] = 'modified'; var_dump($vars); ?> to reproduce the leak in http://bugs.php.net/bug.php?id=33941 vars = $vars; } public function __get($key) { return $this->vars[$key]; } } $vars = array('test' => array(0 => "")); $obj = new test($vars); $obj->undefined[0] = 'modified'; ?> Notice: Undefined index: undefined in /tmp/test.php on line 12 [Wed Mar 1 19:08:25 2006] Script: './/test.php' /usr/src/php5/Zend/zend_variables.h(45) : Freeing 0x08765E2C (9 bytes), script=.//test.php /usr/src/php5/Zend/zend_variables.c(120) : Actual location (location was relayed) [Wed Mar 1 19:08:25 2006] Script: './/test.php' /usr/src/php5/Zend/zend_execute.c(1020) : Freeing 0x0877BACC (35 bytes), script=.//test.php /usr/src/php5/Zend/zend_hash.c(383) : Actual location (location was relayed) [Wed Mar 1 19:08:25 2006] Script: './/test.php' /usr/src/php5/Zend/zend_execute.c(1076) : Freeing 0x0877BA7C (32 bytes), script=.//test.php /usr/src/php5/Zend/zend_hash.c(169) : Actual location (location was relayed) Last leak repeated 1 time [Wed Mar 1 19:08:25 2006] Script: './/test.php' /usr/src/php5/Zend/zend_execute.c(842) : Freeing 0x0877B9DC (16 bytes), script=.//test.php [Wed Mar 1 19:08:25 2006] Script: './/test.php' /usr/src/php5/Zend/zend_execute.c(1072) : Freeing 0x0877B88C (16 bytes), script=.//test.php Expected result: output array(1) { ["test"]=> array(1) { [0]=> string(0) "" } } and just don't call __get/__set, raising a warning Actual result: -- get test array(1) { ["test"]=> array(1) { [0]=> string(8) "modified" } } -- Edit bug report at http://bugs.php.net/?id=36567&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=36567&r=trysnapshot44 Try a CVS snapshot (PHP 5.1): http://bugs.php.net/fix.php?id=36567&r=trysnapshot51 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=36567&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=36567&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=36567&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=36567&r=needtrace Need Reproduce Script:http://bugs.php.net/fix.php?id=36567&r=needscript Try newer version:http://bugs.php.net/fix.php?id=36567&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=36567&r=support Expected behavior:http://bugs.php.net/fix.php?id=36567&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=36567&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=36567&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=36567&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=36567&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=36567&r=dst IIS Stability:http://bugs.php.net/fix.php?id=36567&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=36567&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=36567&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=36567&r=nozend MySQL Configuration Error:http://bugs.php.net/fix.php?id=36567&r=mysqlcfg
[PHP-BUG] Bug #55438 [NEW]: race condition: curlwapper is not sending http header randomly
From: Operating system: gentoo PHP version: 5.3.6 Package: cURL related Bug Type: Bug Bug description:race condition: curlwapper is not sending http header randomly Description: background: php is configured with curl wrapper, which make file_get_contents use curl. i haven't tested with calling curl functions directly php unset curl header too soon before curl make the request expected order: set header, build and send request. unset header actual order 1: set header, build and send request. unset header (good) actual order 2: set header, unset header, build and send request (bad) "send request" comes after php "unset header" curl behavior randomly, by sending request before or after php unset the header Test script: --- #!/usr/lib/php5.3/bin/php http://localhost/";; $context = stream_context_create(array( 'http' => array( 'header' => "Authorization: Basic " . base64_encode("$username:$password") ) )); $http_response_header = array(); $data = file_get_contents($authUrl, false, $context); sleep(1); } ?> tcpdump -nilo dst port 80 -w- -s0 Expected result: GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= Actual result: -- GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* gdb --args /usr/lib/php5.3/bin/php.debug test.php (gdb) l /usr/src/debug/dev-lang/php-5.3.6/sapis-build/cli/ext/curl/streams.c:367 360 slist = curl_slist_append(slist, trimmed); 361 efree(trimmed); 362 p = php_strtok_r(NULL, "\r\n", &token); 363 } 364 efree(copy_ctx_opt); 365 } 366 if (slist) { 367 curl_easy_setopt(curlstream->curl, CURLOPT_HTTPHEADER, slist); 368 } 369 } 370 if (SUCCESS == php_stream_context_get_option(context, "http", "method", &ctx_opt) && Z_TYPE_PP(ctx_opt) == IS_STRING) { 371 if (strcasecmp(Z_STRVAL_PP(ctx_opt), "get")) { 372 if (!strcasecmp(Z_STRVAL_PP(ctx_opt), "head")) { 373 curl_easy_setopt(curlstream- >curl, CURLOPT_NOBODY, 1); 374 } else { (gdb) l /usr/src/debug/dev-lang/php-5.3.6/sapis-build/cli/ext/curl/streams.c:501 494 if (msg_found) { 495 goto exit_fail; 496 } 497 } 498 499 /* context headers are not needed anymore */ 500 if (slist) { 501 curl_easy_setopt(curlstream->curl, CURLOPT_HTTPHEADER, NULL); 502 curl_slist_free_all(slist); 503 } 504 return stream; 505 506 exit_fail: 507 php_stream_close(stream); 508 if (slist) { (gdb) br 367 Breakpoint 1 at 0x1c59c9: file /usr/src/debug/dev-lang/php-5.3.6/sapis- build/cli/ext/curl/streams.c, line 367. (gdb) br 501 Breakpoint 2 at 0x1c61bc: file /usr/src/debug/dev-lang/php-5.3.6/sapis- build/cli/ext/curl/streams.c, line 501. (gdb) br Curl_send_plain Breakpoint 4 at 0xb7698ca0: file sendf.c, line 279.
Bug #55438 [Com]: race condition: curlwapper is not sending http header randomly
Edit report at https://bugs.php.net/bug.php?id=55438&edit=1 ID: 55438 Comment by: xuefer at gmail dot com Reported by:xuefer at gmail dot com Summary:race condition: curlwapper is not sending http header randomly Status: Open Type: Bug Package:cURL related Operating System: gentoo PHP Version:5.3.6 Block user comment: N Private report: N New Comment: sorry for the mismatch http url string. i was trying to remove some string for privacy Previous Comments: [2011-08-17 11:38:50] xuefer at gmail dot com Description: background: php is configured with curl wrapper, which make file_get_contents use curl. i haven't tested with calling curl functions directly php unset curl header too soon before curl make the request expected order: set header, build and send request. unset header actual order 1: set header, build and send request. unset header (good) actual order 2: set header, unset header, build and send request (bad) "send request" comes after php "unset header" curl behavior randomly, by sending request before or after php unset the header Test script: --- #!/usr/lib/php5.3/bin/php http://localhost/";; $context = stream_context_create(array( 'http' => array( 'header' => "Authorization: Basic " . base64_encode("$username:$password") ) )); $http_response_header = array(); $data = file_get_contents($authUrl, false, $context); sleep(1); } ?> tcpdump -nilo dst port 80 -w- -s0 Expected result: GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= Actual result: -- GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6MTQzNjEuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* Authorization: Basic dGVzdDE6NTY3MDQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* GET / HTTP/1.1 User-Agent: PHP/5.3.6-pl0-gentoo Host: localhost Accept: */* gdb --args /usr/lib/php5.3/bin/php.debug test.php (gdb) l /usr/src/debug/dev-lang/php-5.3.6/sapis-build/cli/ext/curl/streams.c:367 360 slist = curl_slist_append(slist, trimmed); 361 efree(trimmed); 362 p = php_strtok_r(NULL, "\r\n", &token); 363 } 364 efree(copy_ctx_opt); 365 } 366 if (slist) { 367 curl_easy_setopt(curlstream->curl, CURLOPT_HTTPHEADER, slist); 368 } 369 } 370 if (SUCCESS == php_stream_context_get_option(context, "http", "method", &ctx_opt) && Z_TYPE_PP(ctx_opt) == IS_STRING) { 371 if (strcasecmp(Z_STRVAL_PP(ctx_opt), "get")) { 372 if (!strcasecmp(Z_STRVAL_PP(ctx_opt), "head")) { 373 curl_easy_setopt(curlstream- >curl, CURLOPT_NOBODY, 1); 374 } else { (gdb) l /usr/src/debug/dev-lang/php-5.3.6/sapis-build/cli/ext/curl/streams.c:501 494 if (msg_found) { 495 goto exit_fail; 496 } 497 } 498 499 /* contex
[PHP-BUG] Bug #63748 [NEW]: error: 'struct fpm_scoreboard_s' has no member named 'lock'
From: xuefer at gmail dot com Operating system: linux PHP version: 5.4.9 Package: FPM related Bug Type: Bug Bug description:error: 'struct fpm_scoreboard_s' has no member named 'lock' Description: CFLAGS='-pipe -Wall -std=c99 -D_GNU_SOURCE -pedantic' "CFLAGS=-pipe -Wall -std=c99 -D_GNU_SOURCE -pedantic -O0 -g" "CXXFLAGS=-pipe - Wall -std=c99 -D_GNU_SOURCE -pedantic -O0 -g" ../php5/configure --disable-pear -- enable-debug --enable-maintainer-zts --enable-experimental-zts --enable-fpm -- enable-cgi --enable-fastcgi --enable-fastcgi --enable-force-cgi-redirect --with- pcre-regex --with-zlib --with-jpeg-dir=/usr --with-png-dir=/usr --with-gd -- with- openssl --with-posix --with-iconv --enable-sockets --enable-inline-optimization -- disable-mbregex --enable-bcmath --enable-pcntl --enable-memory-limit --enable- ftp --enable-event --with-mysql=/usr --enable-mmap --enable-mbstring --with-readline - -with-xmlrpc --enable-soap --with-sqlite --enable-sqlite-utf8 --with- mysqli=/usr/bin/mysql_config --with-pdo-mysql=/usr --prefix=/home/moo/test/php5- debug-zts --cache-file=config.cache make Actual result: -- /home/moo/src/php/php5-debug-zts/meta_ccld -I/home/moo/src/php/php5/sapi/fpm - Isapi/fpm/ -I/home/moo/src/php/php5/sapi/fpm/ -DPHP_ATOM_INC - I/home/moo/src/php/php5-debug-zts/include -I/home/moo/src/php/php5-debug- zts/main -I/home/moo/src/php/php5 -I/home/moo/src/php/php5-debug- zts/ext/date/lib -I/home/moo/src/php/php5/ext/date/lib - I/home/moo/src/php/php5/ext/ereg/regex -I/usr/include/libxml2 - I/home/moo/src/php/php5/ext/mbstring/libmbfl -I/home/moo/src/php/php5-debug- zts/ext/mbstring/libmbfl -I/home/moo/src/php/php5/ext/mbstring/libmbfl/mbfl - I/home/moo/src/php/php5-debug-zts/ext/mbstring/libmbfl/mbfl -I/usr/include/mysql -I/home/moo/src/php/php5/ext/sqlite3/libsqlite -I/home/moo/src/php/php5-debug- zts/TSRM -I/home/moo/src/php/php5-debug-zts/Zend -I/home/moo/src/php/php5/main - I/home/moo/src/php/php5/Zend -I/home/moo/src/php/php5/TSRM - I/home/moo/src/php/php5-debug-zts/ -D_REENTRANT -I/usr/include -pipe -Wall - std=c99 -D_GNU_SOURCE -pedantic -g -fvisibility=hidden -pthread -O0 -Wall -DZTS -c /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c -o sapi/fpm/fpm/fpm_scoreboard.o In file included from /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:11:0: /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.h:24:3: warning: declaration does not declare anything /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.h:53:3: warning: declaration does not declare anything /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_update': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:87:26: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:146:12: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_acquire': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:187:22: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_release': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:199:12: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_proc_acquire': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:211:25: error: 'struct fpm_scoreboard_proc_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_proc_release': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:225:6: error: 'struct fpm_scoreboard_proc_s' has no member named 'lock' -- Edit bug report at https://bugs.php.net/bug.php?id=63748&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=63748&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=63748&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=63748&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=63748&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=63748&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=63748&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=63748&r=needscript Try newer version: https://bugs.php.net/fix.php?id=63748&r=oldversion Not developer issue:https://bugs.php.net/fix.php?id=63748&r=support Expected behavior: https://bugs.php.net/fix.php?id=63748&r=notwrong Not enough info: https://bugs.php.net/fix.php?id
Bug #63748 [Com]: error: 'struct fpm_scoreboard_s' has no member named 'lock'
Edit report at https://bugs.php.net/bug.php?id=63748&edit=1 ID: 63748 Comment by: xuefer at gmail dot com Reported by:xuefer at gmail dot com Summary:error: 'struct fpm_scoreboard_s' has no member named 'lock' Status: Feedback Type: Bug Package:FPM related Operating System: linux PHP Version:5.4.9 Block user comment: N Private report: N New Comment: -fms-extensions make it works. regarding to your patch: there maybe a space missing in "}u" (expected to be "} u" Previous Comments: [2012-12-12 06:56:59] larue...@php.net The following patch has been added/updated: Patch Name: bug63748.patch Revision: 1355295419 URL: https://bugs.php.net/patch-display.php?bug=63748&patch=bug63748.patch&revision=1355295419 [2012-12-12 06:55:45] larue...@php.net anyway, I think using anonymous union in struct is not very good idea, a patch attached. [2012-12-12 06:54:50] larue...@php.net The following patch has been added/updated: Patch Name: bug63748.patch Revision: 1355295290 URL: https://bugs.php.net/patch-display.php?bug=63748&patch=bug63748.patch&revision=1355295290 [2012-12-12 06:46:55] larue...@php.net according to : http://gcc.gnu.org/onlinedocs/gcc/Unnamed-Fields.html#Unnamed- Fields I think you need "-fms-extensions" thanks ---------------- [2012-12-12 03:40:21] xuefer at gmail dot com Description: CFLAGS='-pipe -Wall -std=c99 -D_GNU_SOURCE -pedantic' "CFLAGS=-pipe -Wall -std=c99 -D_GNU_SOURCE -pedantic -O0 -g" "CXXFLAGS=-pipe - Wall -std=c99 -D_GNU_SOURCE -pedantic -O0 -g" ../php5/configure --disable-pear -- enable-debug --enable-maintainer-zts --enable-experimental-zts --enable-fpm -- enable-cgi --enable-fastcgi --enable-fastcgi --enable-force-cgi-redirect --with- pcre-regex --with-zlib --with-jpeg-dir=/usr --with-png-dir=/usr --with-gd -- with- openssl --with-posix --with-iconv --enable-sockets --enable-inline-optimization -- disable-mbregex --enable-bcmath --enable-pcntl --enable-memory-limit --enable- ftp --enable-event --with-mysql=/usr --enable-mmap --enable-mbstring --with-readline - -with-xmlrpc --enable-soap --with-sqlite --enable-sqlite-utf8 --with- mysqli=/usr/bin/mysql_config --with-pdo-mysql=/usr --prefix=/home/moo/test/php5- debug-zts --cache-file=config.cache make Actual result: -- /home/moo/src/php/php5-debug-zts/meta_ccld -I/home/moo/src/php/php5/sapi/fpm - Isapi/fpm/ -I/home/moo/src/php/php5/sapi/fpm/ -DPHP_ATOM_INC - I/home/moo/src/php/php5-debug-zts/include -I/home/moo/src/php/php5-debug- zts/main -I/home/moo/src/php/php5 -I/home/moo/src/php/php5-debug- zts/ext/date/lib -I/home/moo/src/php/php5/ext/date/lib - I/home/moo/src/php/php5/ext/ereg/regex -I/usr/include/libxml2 - I/home/moo/src/php/php5/ext/mbstring/libmbfl -I/home/moo/src/php/php5-debug- zts/ext/mbstring/libmbfl -I/home/moo/src/php/php5/ext/mbstring/libmbfl/mbfl - I/home/moo/src/php/php5-debug-zts/ext/mbstring/libmbfl/mbfl -I/usr/include/mysql -I/home/moo/src/php/php5/ext/sqlite3/libsqlite -I/home/moo/src/php/php5-debug- zts/TSRM -I/home/moo/src/php/php5-debug-zts/Zend -I/home/moo/src/php/php5/main - I/home/moo/src/php/php5/Zend -I/home/moo/src/php/php5/TSRM - I/home/moo/src/php/php5-debug-zts/ -D_REENTRANT -I/usr/include -pipe -Wall - std=c99 -D_GNU_SOURCE -pedantic -g -fvisibility=hidden -pthread -O0 -Wall -DZTS -c /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c -o sapi/fpm/fpm/fpm_scoreboard.o In file included from /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:11:0: /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.h:24:3: warning: declaration does not declare anything /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.h:53:3: warning: declaration does not declare anything /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_update': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:87:26: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:146:12: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard_acquire': /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c:187:22: error: 'struct fpm_scoreboard_s' has no member named 'lock' /home/moo/src/php/php5/sapi/fpm/fpm/fpm_scoreboard.c: In function 'fpm_scoreboard