Attached proposed patch to solve this, just the Zend/ part.
(patch is for PHP_4_3 branch)
--Jani
Index: zend_ini.c
===================================================================
RCS file: /repository/Zend/zend_ini.c,v
retrieving revision 1.23.2.1
diff -u -r1.23.2.1 zend_ini.c
--- zend_ini.c 31 Dec 2002 16:23:03 -0000 1.23.2.1
+++ zend_ini.c 4 Mar 2003 21:40:26 -0000
@@ -428,6 +428,7 @@
}
+/* This should be removed in PHP 5? */
ZEND_API ZEND_INI_MH(OnUpdateInt)
{
long *p;
@@ -445,6 +446,44 @@
return SUCCESS;
}
+/*
+ * Note: on 64 bit platforms, sizeof(long) != sizeof(int) and
+ * long* and int* cannot be used interchangably without disaster!
+ * OnUpdateInteger or OnUpdateLong must match the resource type!
+ */
+ZEND_API ZEND_INI_MH(OnUpdateInteger)
+{
+ int *p;
+#ifndef ZTS
+ char *base = (char *) mh_arg2;
+#else
+ char *base;
+
+ base = (char *) ts_resource(*((int *) mh_arg2));
+#endif
+
+ p = (int *) (base+(size_t) mh_arg1);
+
+ *p = zend_atoi(new_value, new_value_length);
+ return SUCCESS;
+}
+
+ZEND_API ZEND_INI_MH(OnUpdateLong)
+{
+ long *p;
+#ifndef ZTS
+ char *base = (char *) mh_arg2;
+#else
+ char *base;
+
+ base = (char *) ts_resource(*((int *) mh_arg2));
+#endif
+
+ p = (long *) (base+(size_t) mh_arg1);
+
+ *p = zend_atoi(new_value, new_value_length);
+ return SUCCESS;
+}
ZEND_API ZEND_INI_MH(OnUpdateReal)
{
Index: zend_ini.h
===================================================================
RCS file: /repository/Zend/zend_ini.h,v
retrieving revision 1.21.2.1
diff -u -r1.21.2.1 zend_ini.h
--- zend_ini.h 31 Dec 2002 16:23:03 -0000 1.21.2.1
+++ zend_ini.h 4 Mar 2003 21:40:27 -0000
@@ -170,7 +170,9 @@
/* Standard message handlers */
ZEND_API ZEND_INI_MH(OnUpdateBool);
-ZEND_API ZEND_INI_MH(OnUpdateInt);
+ZEND_API ZEND_INI_MH(OnUpdateInt); /* Remove in PHP 5? */
+ZEND_API ZEND_INI_MH(OnUpdateInteger);
+ZEND_API ZEND_INI_MH(OnUpdateLong);
ZEND_API ZEND_INI_MH(OnUpdateReal);
ZEND_API ZEND_INI_MH(OnUpdateString);
ZEND_API ZEND_INI_MH(OnUpdateStringUnempty);
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php