php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #29914 Warning with preg_match in apache module
Submitted: 2004-08-31 15:23 UTC Modified: 2004-10-12 16:49 UTC
Votes:4
Avg. Score:5.0 ± 0.0
Reproduced:4 of 4 (100.0%)
Same Version:3 (75.0%)
Same OS:0 (0.0%)
From: admin at profvince dot com Assigned:
Status: Not a bug Package: PCRE related
PHP Version: 5.0.1 OS: LFS 5.1pre1
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: admin at profvince dot com
New email:
PHP Version: OS:

 

 [2004-08-31 15:23 UTC] admin at profvince dot com
Description:
------------
Following of bug #29158 (http://bugs.php.net/bug.php?id=29158)

I've installed php-5.0.0, and I've experienced a warning with
preg_match, related with PCRE, no matter the pattern or the string
(especially on first page onf phpmyadmin).

Warning: preg_match: internal pcre_fullinfo() error -3 in [myscript] on
line [line]

This error doesn't occur with PHP-5.0.0RC2 and PHP-5.0.0RC3 (and the
same php configuration)

I've tested with php-5.0.1 : same issue.

BUT, i just realized that this bug doens't occurs with PHP 5.0.1 CLI,
although it's still present with Apache module.
(I didn't tried with PHP 5.0.0 CLI)

Please, only reply if you have the same error message. Thanks.

Environment :
-------------

LFS 5.1pre1
Linux 2.6.8.1
Apache 2.0.50 (with mpm=worker)
PCRE version 4.5 01-December-2003
Mysql 4.0.20

PHP configure :
---------------

./configure --with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/etc/apache
--with-calendar
--with-pdf
--enable-trans-sid
--enable-mbstring
--enable-dbase
--with-dom
--with-sablot
--with-ttf
--enable-gd-imgstrttf
--enable-gd-native-ttf
--enable-bcmath
--with-bz2=/usr
--with-curl=/usr
--with-curlwrappers
--enable-exif
--enable-ftp
--with-gd=/usr
--with-freetype-dir=/usr
--with-gettext=/usr
--with-gmp=/usr
--with-ldap=/usr
--with-openssl=/usr
--with-mysql=/usr/local/mysql
--with-ncurses=/usr
--with-pcre-regex=/usr
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-zlib=/usr
--with-tiff-dir=/usr
--with-pspell=/usr
--with-libxml-dir=/usr
--with-openssl-dir=/usr
--enable-sockets
--with-libexpat-dir=/usr
--with-xsl=/usr
--enable-memory-limit
--enable-zend-multibyte

diff php.ini-dist php.ini :
---------------------------

15c15
< ; About php.ini   ;
---
> ; About this file ;
58,61d57
< ;
< ;;;;;;;;;;;;;;;;;;;
< ; About this file ;
< ;;;;;;;;;;;;;;;;;;;
113,114d108
< ; Note: output_handler must be empty if this is set 'On' !!!!
< ;       Instead you must use zlib.output_handler.
165d158
< ;
204c197
< ;open_basedir =
---
> open_basedir = /srv/http
209c202
< disable_functions =
---
> disable_function = php_uname, putenv, getmyuid, getmypid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, popen, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname
244d236
<
274,277d265
< ;   - Show all errors, except for notices and coding standards warnings
< ;
< ;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
< ;
390c378
< register_long_arrays = On
---
> register_long_arrays = Off
395c383
< register_argc_argv = On
---
> register_argc_argv = Off
398c386
< post_max_size = 8M
---
> post_max_size = 2M
455c443
< enable_dl = On
---
> enable_dl = Off
497c485
< ;upload_tmp_dir =
---
> upload_tmp_dir = /srv/http/upload
548d535
<
569d555
< ;extension=php_java.dll
609d594
< smtp_port = 25
620c605
< ;mail.force_extra_parameters =
---
> ;mail.force_extra_paramaters =
653c638
< mysql.allow_persistent = On
---
> mysql.allow_persistent = Off
656c641
< mysql.max_persistent = -1
---
> mysql.max_persistent = 0
688c673
< ; SQL-Errors will be displayed.
---
> ; SQL-Erros will be displayed.
736,737c721
< ; Detect broken persistent links always with pg_pconnect().
< ; Auto reset feature requires a little overheads.
---
> ; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
747d730
< ; Notice message logging require a little overheads.
879c862
< ;session.save_path = "/tmp"
---
> session.save_path = "4;/srv/http/temp"
1186,1194d1168
< [soap]
< ; Enables or disables WSDL caching feature.
< soap.wsdl_cache_enabled=1
< ; Sets the directory name where SOAP extension will put cache files.
< soap.wsdl_cache_dir="/tmp"
< ; (time to live) Sets the number of second while cached file will be used
< ; instead of original one.
< soap.wsdl_cache_ttl=86400
<

Reproduce code:
---------------
<?php
preg_match('@([0-9]{1,2}).([0-9]{1,2}).([0-9]{1,2})@', phpversion(), $match);
echo 'PHP version : '.$match[1].'-'.$match[2].'-'.$match[3];
?>

Expected result:
----------------
PHP version : 5-0-1

Actual result:
--------------
1?) With PHP - CLI :

PHP version : 5-0-1

2?) With PHP - Apache module (libphp5.so)

Warning: preg_match: internal pcre_fullinfo() error -3 in test.php on line 2
PHP version : --

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-08-31 15:45 UTC] derick@php.net
WHy are you not using the bundled regexp library? As that is what we test with.
 [2004-08-31 15:55 UTC] tony2001@php.net
Btw, I can't reproduce the warning even with external pcrelib.
 [2004-08-31 16:08 UTC] admin at profvince dot com
Okay, it works with internal regexp. Fine.

But that doesn't explain why it fails with my system's libpcre. I don't have any particular preference for system pcre over internal's, but i'm curious about the reason. And if there's a possibility to link with system libs, well, that just should work.
 [2004-09-28 20:55 UTC] dkowis at shlrm dot org
I've got the same issue.
With these configure options from my SourceMage distribution, I've made it work. I think that the later --with-pcre-regex without a directory makes it work.
My configure opts:
--with-zlib
--with-zlib-dir=/usr
--with-pcre-regex=/usr
--with-bz2=/usr
--without-pspell
--with-mhash=/usr
--with-mcrypt=/usr
--with-mcal=/usr
--with-curl=/usr
--with-gmp=/usr
--with-openssl=/usr
--with-gettext=/usr
--with-pgsql=/usr
--with-mysql=/usr
--with-gdbm=/usr
--with-mm=/usr
--with-ldap=/usr
--enable-xml
--with-expat-dir=/usr
--disable-xslt
--with-dom=/usr
--without-dom-xslt
--without-dom-exslt
--without-tlib
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-gd
--enable-gd-native-ttf
--with-freetype-dir=/usr/lib
--with-pcre-regex
 [2004-10-12 07:00 UTC] tony2001@php.net
Don't use external PCRE lib, use bundled instead.
 [2004-10-12 08:32 UTC] derick@php.net
As Tony said: use the bundled version.
 [2004-10-12 16:49 UTC] admin at profvince dot com
That's only a workaround, not a bugfix.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 02:01:29 2024 UTC