The patch 043-recode_size_t.patch is broken.
req_len and str_len should be integers, but are size_t
(zend_parse_parameters wants pointers to int). This is a problem for 64
bits arches since a part of the variables is not initialized
(sizof(size_t) != sizeof(int)), and recode_buffer_to_buffer is called
with funny values that makes librecode eat all the system's memory.
The patch was messed up during the conversion from php4 (r301 of the
pkg-kde svn repository).
This patch is not needed in testing/unstable and should be removed since
the bug for this patch (PHP#41765) was fixed upstream in php 5.2.4, but
a fixed version is needed for etch.
An updated version of the patch witch fixes the problem for me is
attached to this mail and should be, IMO, applied as a security fix for
etch.
--- php-5.2.0/ext/recode/recode.c.orig 2008-02-06 19:58:51.000000000 +0100
+++ php-5.2.0/ext/recode/recode.c 2008-02-06 19:59:13.000000000 +0100
@@ -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;