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;
 

Reply via email to