#35243 [Csd]: Crashes in php_mblen when compiled with thread-safety on Linux
| From: | shulmanb at il dot ibm dot com | Date: | Mon, 21 Nov 2005 07:52:10 +0000 |
| Subject: | #35243 [Csd]: Crashes in php_mblen when compiled with thread-safety on Linux | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-88605@lists.php.net to get a copy of this message | ||
ID: 35243
User updated by: shulmanb at il dot ibm dot com
Reported By: shulmanb at il dot ibm dot com
Status: Closed
Bug Type: *General Issues
Operating System: Linux
PHP Version: 5CVS-2005-11-19 (snap)
New Comment:
Thanks for including the fix.
From what I've seen, it has been included in HEAD, and in 5.1.x.
Any chance of it being included in 5.0.x as well?
Previous Comments:
------------------------------------------------------------------------
[2005-11-20 19:08:11] sniper@php.net
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2005-11-18 17:18:24] shulmanb at il dot ibm dot com
Done.
Can be found at: http://news.php.net/php.internals/20164
------------------------------------------------------------------------
[2005-11-16 18:18:33] sniper@php.net
And if it's still a problem, provide the patch in unified diff format.
------------------------------------------------------------------------
[2005-11-16 16:07:01] shulmanb at il dot ibm dot com
Description:
------------
When running on Linux with --enable-maintainer-zts (and yes, I know
it's not wise...), crashes sometimes happen in
ext/standard/php_string.h when using the php_mblen macro.
This happens because in ext/standard/basic_functions.c, in the
basic_globals_ctor function, the value of mblen_state is not
initialized.
The basic_globals_ctor function should include the following lines as
part of the initialization:
#if defined(_REENTRANT)&&defined(HAVE_MBRLEN)&&defined(HAVE_MBSTATE_T)
memset(&BG(mblen_state), 0, sizeof(BG(mblen_state)));
#endif
Unfortunately, I am unable to include code that demonstrate this, as
the crash strongly depends on the (random) value of mblen_state.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35243&edit=1