svn: /php/php-src/ branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c trunk/ext/mysqli/mysqli_nonapi.c
| From: | Andrey Hristov | Date: | Fri, 12 Aug 2011 14:55:00 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c trunk/ext/mysqli/mysqli_nonapi.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-65836@lists.php.net to get a copy of this message | ||
andrey Fri, 12 Aug 2011 14:55:00 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=314838
Log:
prevent a crash if cs is NULL, which can happen with MS and lazy connections
Changed paths:
U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c
U php/php-src/branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c
U php/php-src/trunk/ext/mysqli/mysqli_nonapi.c
Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:32:14 UTC (rev 314837)
+++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:55:00 UTC (rev 314838)
@@ -916,7 +916,6 @@
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
- object_init(return_value);
#if !defined(MYSQLI_USE_MYSQLND)
mysql_get_character_set_info(mysql->mysql, &cs);
@@ -930,6 +929,10 @@
comment = cs.comment;
#else
cs = mysql->mysql->charset;
+ if (!cs) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The connection has no charset
associated");
+ RETURN_NULL();
+ }
name = cs->name;
collation = cs->collation;
minlength = cs->char_minlen;
@@ -938,6 +941,7 @@
comment = cs->comment;
state = 1; /* all charsets are compiled in */
#endif
+ object_init(return_value);
add_property_string(return_value, "charset", (name) ? (char *)name : "", 1);
add_property_string(return_value, "collation",(collation) ? (char *)collation :
"", 1);
Modified: php/php-src/branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:32:14 UTC (rev 314837)
+++ php/php-src/branches/PHP_5_4/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:55:00 UTC (rev 314838)
@@ -992,7 +992,6 @@
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
- object_init(return_value);
#if !defined(MYSQLI_USE_MYSQLND)
mysql_get_character_set_info(mysql->mysql, &cs);
@@ -1006,6 +1005,10 @@
comment = cs.comment;
#else
cs = mysql->mysql->charset;
+ if (!cs) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The connection has no charset
associated");
+ RETURN_NULL();
+ }
name = cs->name;
collation = cs->collation;
minlength = cs->char_minlen;
@@ -1014,6 +1017,7 @@
comment = cs->comment;
state = 1; /* all charsets are compiled in */
#endif
+ object_init(return_value);
add_property_string(return_value, "charset", (name) ? (char *)name : "", 1);
add_property_string(return_value, "collation",(collation) ? (char *)collation :
"", 1);
Modified: php/php-src/trunk/ext/mysqli/mysqli_nonapi.c
===================================================================
--- php/php-src/trunk/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:32:14 UTC (rev 314837)
+++ php/php-src/trunk/ext/mysqli/mysqli_nonapi.c 2011-08-12 14:55:00 UTC (rev 314838)
@@ -992,7 +992,6 @@
}
MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
- object_init(return_value);
#if !defined(MYSQLI_USE_MYSQLND)
mysql_get_character_set_info(mysql->mysql, &cs);
@@ -1006,6 +1005,10 @@
comment = cs.comment;
#else
cs = mysql->mysql->charset;
+ if (!cs) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The connection has no charset
associated");
+ RETURN_NULL();
+ }
name = cs->name;
collation = cs->collation;
minlength = cs->char_minlen;
@@ -1014,6 +1017,7 @@
comment = cs->comment;
state = 1; /* all charsets are compiled in */
#endif
+ object_init(return_value);
add_property_string(return_value, "charset", (name) ? (char *)name : "", 1);
add_property_string(return_value, "collation",(collation) ? (char *)collation :
"", 1);