#41765 [Opn->Csd]: Recode crashes/does not work on amd64
| From: | stas@php.net | Date: | Fri, 22 Jun 2007 00:07:24 +0000 |
| Subject: | #41765 [Opn->Csd]: Recode crashes/does not work on amd64 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-114066@lists.php.net to get a copy of this message | ||
ID: 41765
Updated by: stas@php.net
Reported By: nexus at smoula dot net
-Status: Open
+Status: Closed
Bug Type: Recode related
Operating System: Gentoo Linux
PHP Version: 5CVS-2007-06-21 (CVS)
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[2007-06-21 14:26:29] nexus at smoula dot net
Description:
------------
When using recode extension on amd64 system I've got two states
- Crash (SIGSEGV)
- zero-length string output
from recode_string function.
This problem is relevant only on 64bit systems. Here is a little patch
which helps.
diff -ruN php5/ext/recode/recode.c php5-b/ext/recode/recode.c
--- php5/ext/recode/recode.c 2007-01-01 10:36:05.000000000 +0100
+++ php5-b/ext/recode/recode.c 2007-06-21 16:16:31.000000000 +0200
@@ -132,7 +132,7 @@
{
RECODE_REQUEST request = NULL;
char *r = NULL;
- int r_len = 0, r_alen = 0;
+ size_t r_len = 0, r_alen = 0;
int req_len, str_len;
char *req, *str;
I'm not a C programmer, so please review this patch and consequences
It's going to have
Reproduce code:
---------------
<?php
echo recode_string("utf-8..flat","aaaa");
?>
Expected result:
----------------
should return aaaa
Actual result:
--------------
instead returns zero length string or crashes with sigsegv
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41765&edit=1