Package: php4-spplus
Version: 1.0-4
Severity: grave
Tags: sid patch
Justification: renders package unusable
Hi,
our web agency use the php_spplus module in debian testing...
Last week, we made an update/upgrade of : php* and apache* packages
(with the classic apt-get upgrade)...
All seems to work right, but not php_spplus.
The payment page, which calls spplus functions (calculhmac, ...) and the
page is not displayed, and apache logs (error.log) contain this :
[Fri Mar 4 11:14:17 2005] [notice] child pid 11375 exit signal
Segmentation fault (11)
[Fri Mar 4 11:14:17 2005] [notice] child pid 11366 exit signal
Segmentation fault (11)
[Fri Mar 4 11:14:17 2005] [notice] child pid 11365 exit signal
Segmentation fault (11)
Well, it doesn't work anymore.
I searched during 3 hours without any succes. I used sources, patched
with debian source patch, recompiled... nothing better.
...
I searched a little bit more, and i think i found the problem...
The "zend_parse_parameters" function used in php_spplus.c need (now ?) a
different parameter in first argument.
So, the first parameter of each function 'zend_parse_parameters' must
be: ZEND_NUM_ARGS() TSRMLS_CC
So, the 'Segmentation fault' probably came from the
'zend_parse_parameters' function which crashes...
See, in attachment, my diff file between php_spplus.c ORIGINAL file and
php_spplus.c file corrected by me.
I made a quick test with our paiement page, and it works.
Thanks.
-------------
--- spplus-1.0.orig/php_spplus.c 2004-01-19 10:50:55.000000000
+0100
+++ spplus-1.0/php_spplus.c 2005-03-04 12:19:04.000000000 +0100
@@ -80,7 +80,7 @@
int iclent_len, icodesiret_len, imontant_len, ireference_len,
ivalidite_len, itaxe_len, idevise_len, ilangue_len;
char *result;
- if (zend_parse_parameters(8, "ssssssss", &iclent, &iclent_len,
&icodesiret, &icodesiret_len, &ireference, &ireference_len, &ilangue,
&ilangue_len, &idevise, &idevise_len, &imontant, &imontant_len, &itaxe,
&itaxe_len, &ivalidite, &ivalidite_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssssssss",
&iclent, &iclent_len, &icodesiret, &icodesiret_len, &ireference,
&ireference_len, &ilangue, &ilangue_len, &idevise, &idevise_len, &imontant,
&imontant_len, &itaxe, &itaxe_len, &ivalidite, &ivalidite_len) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -97,7 +97,7 @@
int iclent_len, idata_len;
char *result;
- if (zend_parse_parameters(2, "ss", &iclent, &iclent_len, &idata,
&idata_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &iclent,
&iclent_len, &idata, &idata_len) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -114,7 +114,7 @@
int iclent_len, idata_len;
char *result;
- if (zend_parse_parameters(2, "ss", &iclent, &iclent_len, &idata,
&idata_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &iclent,
&iclent_len, &idata, &idata_len) == FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -131,7 +131,7 @@
int iclent_len, idata_len;
char *result;
- if (zend_parse_parameters(2, "ss", &iclent, &iclent_len, &idata,
&idata_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &iclent,
&iclent_len, &idata, &idata_len) == FAILURE) {
WRONG_PARAM_COUNT;
}
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.26-intelliance
Locale: LANG=fr_FR, LC_CTYPE=fr_FR (charmap=ISO-8859-1)
Versions of packages php4-spplus depends on:
ii libapache-mod-php4 [phpapi- 4:4.3.10-8 server-side, HTML-embedded scripti
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii php4-cgi [phpapi-20020918-z 4:4.3.10-8 server-side, HTML-embedded scripti
ii php4-cli [phpapi-20020918-z 4:4.3.10-8 command-line interpreter for the p
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]