]> granicus.if.org Git - php/commitdiff
Fixed pdo_mysql build with mysqlnd
authorXinchen Hui <laruence@php.net>
Thu, 19 Jun 2014 15:00:45 +0000 (23:00 +0800)
committerXinchen Hui <laruence@php.net>
Thu, 19 Jun 2014 15:00:45 +0000 (23:00 +0800)
ext/pdo_mysql/mysql_driver.c
ext/pdo_mysql/mysql_statement.c
ext/pdo_mysql/pdo_mysql.c

index fcc395d65a48d74e91e1ba1ba841b4e4c32cb7c6..d7c993509ff55d60fbca0d89a9878a1ab8b0ea74 100644 (file)
@@ -444,7 +444,8 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value
                        unsigned int tmp_len;
 
                        if (mysqlnd_stat(H->server, &tmp, &tmp_len) == PASS) {
-                               ZVAL_STRINGL(return_value, tmp, tmp_len, 0);
+                               ZVAL_STRINGL(return_value, tmp, tmp_len);
+                               efree(tmp);
 #else
                        if ((tmp = (char *)mysql_stat(H->server))) {
                                ZVAL_STRING(return_value, tmp);
index 18d960cadb03c5c5446c37d5d47822db80fa4bb6..2c0fc853836a1f44a024aa7a9747e7a5007a3c82 100644 (file)
@@ -746,7 +746,7 @@ static int pdo_mysql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsig
        }
 #if PDO_USE_MYSQLND
        if (S->stmt) {
-               Z_ADDREF_P(S->stmt->data->result_bind[colno].zv);
+               Z_TRY_ADDREF(S->stmt->data->result_bind[colno].zv);
                *ptr = (char*)&S->stmt->data->result_bind[colno].zv;
                *len = sizeof(zval);
                PDO_DBG_RETURN(1);
index 6f4e9d5265d878a3d6beaedfe84d725a7f720cde..c3a90fedac0eae5b51a1b7795655447a56174004 100644 (file)
@@ -62,7 +62,7 @@ ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql)
 static MYSQLND * pdo_mysql_convert_zv_to_mysqlnd(zval * zv TSRMLS_DC)
 {
        if (Z_TYPE_P(zv) == IS_OBJECT && instanceof_function(Z_OBJCE_P(zv), php_pdo_get_dbh_ce() TSRMLS_CC)) {
-               pdo_dbh_t * dbh = zend_object_store_get_object(zv TSRMLS_CC);
+               pdo_dbh_t * dbh = Z_PDO_DBH_P(zv);
 
                if (!dbh) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to retrieve handle from object store");