ID: 34108
Updated by: [EMAIL PROTECTED]
Reported By: webmaster at netnexus dot com
-Status: Open
+Status: Feedback
Bug Type: Apache related
Operating System: OS X 10.4 (tiger)
PHP Version: 5CVS-2005-08-12 (dev)
New Comment:
I build extensions on OSX all the time. I don't know of a single
extension that doesn't use zend_parse_parameters. And I always load
them from my php.ini file.
Can you reproduce the problem with an extension like pecl/apc, for
example? That is one I am building a dozen times every day.
Previous Comments:
------------------------------------------------------------------------
[2005-08-13 10:08:00] webmaster at netnexus dot com
I was able to get my extension to work perfectly on OS X by
compiling it into my php build instead of accessing it as a
dynamic shared object. So I know it's not my custom
extension that's causing the segfault..
Loading an extension from dl() or by adding it in your
php.ini doesn't work on OS X 1.4 if zend_parse_parameters is
present in the extension (aforementioned segfault). Without
it, it works just fine.
I changed the status of this bug to 'open' because it
relates to php and not my custom extension. Sorry if this
is still the wrong place for this.
------------------------------------------------------------------------
[2005-08-12 22:00:55] [EMAIL PROTECTED]
Please ask questions related to *your* custom extensions in pecl-dev
maillist.
------------------------------------------------------------------------
[2005-08-12 21:55:27] webmaster at netnexus dot com
Description:
------------
I'm unable to recieve parameters in my custom extension. I
followed the directions on the Zend website (http://
www.zend.com/php/internals/extension-writing1.php) for
setting up an extension and cut and copied the code directly
in. I then simply added the zend_parse_parameters function
so I could make the extension do something exciting. Upon
compilation I can run the script from the shell and it works
fine. I pass the extension a string and it returns it as
expected. Running the same script in the browser will
segfault. I've held off reporting this because I am new to
extension programming but I've searched for 2 days to no
avail and have run out of options.
Here's my setup-
OS X 1.4 (Tiger)
php -v
PHP 5.0.5-dev (cli) (built: Aug 12 2005 13:25:14) (DEBUG)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend
Technologies
httpd -V
Server version: Apache/1.3.33 (Darwin)
Server built: Mar 20 2005 15:08:27
Server's Module Magic Number: 19990320:16
Server compiled with....
-D EAPI
-D HAVE_MMAP
-D USE_MMAP_SCOREBOARD
-D USE_MMAP_FILES
-D HAVE_FCNTL_SERIALIZED_ACCEPT
-D HAVE_FLOCK_SERIALIZED_ACCEPT
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D DYNAMIC_MODULE_LIMIT=64
-D HARD_SERVER_LIMIT=2048
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="/var/run/httpd.scoreboard"
-D DEFAULT_LOCKFILE="/var/run/httpd.lock"
-D DEFAULT_ERRORLOG="/var/log/httpd/error_log"
-D TYPES_CONFIG_FILE="/etc/httpd/mime.types"
-D SERVER_CONFIG_FILE="/etc/httpd/httpd.conf"
-D ACCESS_CONFIG_FILE="/etc/httpd/access.conf"
-D RESOURCE_CONFIG_FILE="/etc/httpd/srm.conf"
And my php configure options-
./configure --with-zlib-dir=/usr/local --with-libjpeg=/sw --
with-libtiff=/sw --with-libpng=/sw --with-gd --enable-
native-ttf --with-ttf --with-freetype-dir=/usr/local/lib/
freetype-2.1.9/ --with-mysql=/usr/local/mysql --with-xml --
with-apxs=/usr/sbin/apxs --enable-debug
Reproduce code:
---------------
if (ZEND_NUM_ARGS() != 1)
WRONG_PARAM_COUNT;
char* name = NULL;
int length;
// Crashes in zend_parse_parameters
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name,
&length) == FAILURE) {
RETURN_NULL();
}
Expected result:
----------------
The zend_parse_parameters function should recieve the calling
php functions parameters and continue it's executing normally.
Actual result:
--------------
It segfaults with this-
Program received signal EXC_BAD_ACCESS, Could not access
memory.
Reason: KERN_INVALID_ADDRESS at address: 0xfffffff8
0x00527154 in zend_parse_va_args ()
(gdb) bt
#0 0x00527154 in zend_parse_va_args ()
#1 0x00527278 in zend_parse_parameters ()
#2 0x000e0c80 in zif_imagesmoothline (ht=1,
return_value=0x3c06c8, this_ptr=0xbfffdf40,
return_value_used=0) at /Users/james/www/php5/extensions/
re_draw/re_draw.c:65
#3 0x02291668 in zend_do_fcall_common_helper
(execute_data=0xbfffe0e8, opline=0x1843d70,
op_array=0x3c0548) at /Users/james/Desktop/php5-
STABLE-200508121835/Zend/zend_execute.c:2760
#4 0x022923cc in zend_do_fcall_handler
(execute_data=0xbfffe0e8, opline=0x1843d70,
op_array=0x3c0548) at /Users/james/Desktop/php5-
STABLE-200508121835/Zend/zend_execute.c:2894
#5 0x02288774 in execute (op_array=0x3c0548) at /Users/
james/Desktop/php5-STABLE-200508121835/Zend/zend_execute.c:
1437
#6 0x0224dc24 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /Users/james/Desktop/php5-
STABLE-200508121835/Zend/zend.c:1064
#7 0x021e5e7c in php_execute_script
(primary_file=0xbfffea50) at /Users/james/Desktop/php5-
STABLE-200508121835/main/main.c:1640
#8 0x0229a124 in apache_php_module_main (r=0x183de38,
display_source_mode=0) at /Users/james/Desktop/php5-
STABLE-200508121835/sapi/apache/sapi_apache.c:54
#9 0x0229b618 in send_php (r=0x183de38,
display_source_mode=0, filename=0x183fab8 "/Library/
WebServer/Documents/php5/extensions/test.php") at /Users/
james/Desktop/php5-STABLE-200508121835/sapi/apache/
mod_php5.c:630
#10 0x0229b6a4 in send_parsed_php (r=0x183de38) at /Users/
james/Desktop/php5-STABLE-200508121835/sapi/apache/
mod_php5.c:645
#11 0x0000dd18 in ap_invoke_handler ()
#12 0x00017dd4 in process_request_internal ()
#13 0x00017e54 in ap_process_request ()
#14 0x00006b60 in child_main ()
#15 0x00006dc4 in make_child ()
#16 0x000070f4 in perform_idle_server_maintenance ()
#17 0x000076d0 in standalone_main ()
#18 0x00007d74 in main ()
(gdb)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34108&edit=1