ID:               27011
 Updated by:       [EMAIL PROTECTED]
 Reported By:      ehicks at binarymagi dot com
 Status:           Feedback
 Bug Type:         PCRE related
 Operating System: Solaris 9
 PHP Version:      4CVS-2004-01-23
 New Comment:

I tried with this configure line:

# ./configure --disable-all --enable-debug --with-pcre-regex

# uname -a
SunOS pf-i400 5.6 Generic_105181-33 sun4u sparc SUNW,Ultra-30 Solaris

And I didn't get any crash with your short script..



Previous Comments:
------------------------------------------------------------------------

[2004-01-26 03:46:35] [EMAIL PROTECTED]

Solaris has 'LD_LIBRARY_PATH' environment variable (it's actually
common to all unix variants?) in which you can put any 'exotic' library
paths.

And FYI: with the configure line you provided in this bug report,
you're NOT using the external PCRE library, the bundled PCRE 4.5 is
used.




------------------------------------------------------------------------

[2004-01-26 02:30:47] ehicks at binarymagi dot com

Solaris does not have an ld.so.conf file so the LDFLAGS are manditory
in order for the final module to execute properly.

I did remove the CFLAGS, though, and it compiled and ran just fine.  I
also recompiled PCRE without the CFLAGS and it also seems alright. 
It's still crashes when I execute the preg_match_all, though.

I have also tried this on a Linux server and it worked just fine so it
must be something unique to Solaris or Ultrasparc systems.  If someone
would like an account on my server to experiment on I would be happy to
give them one.

------------------------------------------------------------------------

[2004-01-24 23:58:56] [EMAIL PROTECTED]

I can not reproduce this crash in Linux.
Try recompiling PHP without setting CFLAGS / LDFLAGs.


------------------------------------------------------------------------

[2004-01-23 15:28:45] ehicks at binarymagi dot com

Alright, I can do that.

<?php preg_match_all('|(\w+)://([^\s"<]*[\w+#?/&=])|', "This is a text
string", $matches, PREG_SET_ORDER); ?>

That is straight out of IMP and consistantly crashes my server.  Here
is the backtrace that is creates:

Program received signal SIGSEGV, Segmentation fault.
0xffffffff7bad0cf4 in zend_parse_arg_impl (arg=0x10038b528,
va=0xffffffff7fffe118, spec=0xffffffff7fffe0e8)
    at /root/build/php4-STABLE-200401230430/Zend/zend_API.c:259
259                                                     *p =
Z_LVAL_PP(arg);
(gdb) bt
#0  0xffffffff7bad0cf4 in zend_parse_arg_impl (arg=0x10038b528,
va=0xffffffff7fffe118, spec=0xffffffff7fffe0e8)
    at /root/build/php4-STABLE-200401230430/Zend/zend_API.c:259
#1  0xffffffff7bad197c in zend_parse_arg (arg_num=4, arg=0x10038b528,
va=0xffffffff7fffe118, 
    spec=0xffffffff7fffe0e8, quiet=0) at
/root/build/php4-STABLE-200401230430/Zend/zend_API.c:439
#2  0xffffffff7bad1e68 in zend_parse_va_args (num_args=0,
type_spec=0xffffffff7bb6b34c "ll", 
    va=0xffffffff7fffe118, flags=0) at
/root/build/php4-STABLE-200401230430/Zend/zend_API.c:524
#3  0xffffffff7bad2254 in zend_parse_parameters (num_args=4,
type_spec=0xffffffff7bb6b348 "ssz|ll")
    at /root/build/php4-STABLE-200401230430/Zend/zend_API.c:551
#4  0xffffffff7b94a3e4 in php_pcre_match (ht=4,
return_value=0x100398fa0, this_ptr=0x0, return_value_used=0, 
    global=1) at
/root/build/php4-STABLE-200401230430/ext/pcre/php_pcre.c:374
#5  0xffffffff7b94b480 in zif_preg_match_all (ht=4,
return_value=0x100398fa0, this_ptr=0x0, return_value_used=0)
    at /root/build/php4-STABLE-200401230430/ext/pcre/php_pcre.c:607
#6  0xffffffff7baec798 in execute (op_array=0x100394320)
    at /root/build/php4-STABLE-200401230430/Zend/zend_execute.c:1616
#7  0xffffffff7bacfd4c in zend_execute_scripts (type=8, retval=0x0,
file_count=3)
    at /root/build/php4-STABLE-200401230430/Zend/zend.c:884
#8  0xffffffff7ba6faf8 in php_execute_script
(primary_file=0xffffffff7fffef30)
    at /root/build/php4-STABLE-200401230430/main/main.c:1727
#9  0xffffffff7baf581c in php_handler (r=0x1003840f0)
    at
/root/build/php4-STABLE-200401230430/sapi/apache2handler/sapi_apache2.c:536
#10 0x00000001000ac8a0 in ap_run_handler ()
#11 0x00000001000ad798 in ap_invoke_handler ()
#12 0x000000010007b6d0 in ap_process_request ()
#13 0x00000001000712e4 in ap_process_http_connection ()
#14 0x00000001000c55b8 in ap_run_process_connection ()
#15 0x00000001000c5c18 in ap_process_connection ()
#16 0x00000001000a8e28 in child_main ()
#17 0x00000001000a9030 in make_child ()
#18 0x00000001000a92a4 in startup_children ()
#19 0x00000001000a9da8 in ap_mpm_run ()
#20 0x00000001000b79d8 in main ()
(gdb) print (char
*)(executor_globals.function_state_ptr->function)->common.function_name
$1 = 0xffffffff7bb6b530 "preg_match_all"
(gdb) frame 6
#6  0xffffffff7baec798 in execute (op_array=0x100394320)
    at /root/build/php4-STABLE-200401230430/Zend/zend_execute.c:1616
1616                                                           
((zend_internal_function *)
EX(function_state).function)->handler(EX(opline)->extended_value,
EX(Ts)[EX(opline)->result.u.var].var.ptr, EX(object).ptr,
return_value_used TSRMLS_CC);

PCRE is v4.5, if that's important.  You need anything else?

------------------------------------------------------------------------

[2004-01-23 01:38:00] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc.

If possible, make the script source available online and provide
an URL to it here. Try avoid embedding huge scripts into the report.

(And no, we will NOT install IMP to test this)


------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/27011

-- 
Edit this bug report at http://bugs.php.net/?id=27011&edit=1

Reply via email to