[Pkg-php-commits] [php/debian-sid] Cherry pick fix for memory issues in mysqli_options (Closes: #577784)
Raphael Geissert
geissert at debian.org
Sat May 1 19:21:42 UTC 2010
---
debian/patches/series | 1 +
.../upstream/mysqli_options_mem_issue.patch | 54 ++++++++++++++++++++
2 files changed, 55 insertions(+), 0 deletions(-)
create mode 100644 debian/patches/upstream/mysqli_options_mem_issue.patch
diff --git a/debian/patches/series b/debian/patches/series
index f4c0a93..0360c56 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -60,3 +60,4 @@ upstream/SplFileInfo_getPathName_parent.patch
upstream/gc_memory_leak.patch
upstream/date_mem_leak.patch
upstream/dba_unaligned_mem_access.patch
+upstream/mysqli_options_mem_issue.patch
diff --git a/debian/patches/upstream/mysqli_options_mem_issue.patch b/debian/patches/upstream/mysqli_options_mem_issue.patch
new file mode 100644
index 0000000..50755b4
--- /dev/null
+++ b/debian/patches/upstream/mysqli_options_mem_issue.patch
@@ -0,0 +1,54 @@
+Description: Fix a memory leak and corruption in mysqli_options
+Origin: http://svn.php.net/viewvc?view=revision&revision=298253
+Last-Update: 2010-05-01
+
+Index: php/ext/mysqli/mysqli_api.c
+===================================================================
+--- php.orig/ext/mysqli/mysqli_api.c
++++ php/ext/mysqli/mysqli_api.c
+@@ -1665,13 +1665,13 @@ PHP_FUNCTION(mysqli_options)
+ {
+ MY_MYSQL *mysql;
+ zval *mysql_link = NULL;
+- zval *mysql_value;
++ zval **mysql_value;
+ long mysql_option;
+ unsigned int l_value;
+ long ret;
+ int expected_type;
+
+- if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Olz", &mysql_link, mysqli_link_class_entry, &mysql_option, &mysql_value) == FAILURE) {
++ if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OlZ", &mysql_link, mysqli_link_class_entry, &mysql_option, &mysql_value) == FAILURE) {
+ return;
+ }
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED);
+@@ -1682,13 +1682,13 @@ PHP_FUNCTION(mysqli_options)
+ }
+ }
+ expected_type = mysqli_options_get_option_zval_type(mysql_option);
+- if (expected_type != Z_TYPE_P(mysql_value)) {
++ if (expected_type != Z_TYPE_PP(mysql_value)) {
+ switch (expected_type) {
+ case IS_STRING:
+- convert_to_string_ex(&mysql_value);
++ convert_to_string_ex(mysql_value);
+ break;
+ case IS_LONG:
+- convert_to_long_ex(&mysql_value);
++ convert_to_long_ex(mysql_value);
+ break;
+ default:
+ break;
+@@ -1696,10 +1696,10 @@ PHP_FUNCTION(mysqli_options)
+ }
+ switch (expected_type) {
+ case IS_STRING:
+- ret = mysql_options(mysql->mysql, mysql_option, Z_STRVAL_PP(&mysql_value));
++ ret = mysql_options(mysql->mysql, mysql_option, Z_STRVAL_PP(mysql_value));
+ break;
+ case IS_LONG:
+- l_value = Z_LVAL_PP(&mysql_value);
++ l_value = Z_LVAL_PP(mysql_value);
+ ret = mysql_options(mysql->mysql, mysql_option, (char *)&l_value);
+ break;
+ default:
--
1.6.5
More information about the Pkg-php-commits
mailing list