felipe Thu May 14 17:25:51 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/odbc php_odbc.c Log: - MFH: Improved fix for #42414 http://cvs.php.net/viewvc.cgi/php-src/ext/odbc/php_odbc.c?r1=1.189.2.4.2.13&r2=1.189.2.4.2.14&diff_format=u Index: php-src/ext/odbc/php_odbc.c diff -u php-src/ext/odbc/php_odbc.c:1.189.2.4.2.13 php-src/ext/odbc/php_odbc.c:1.189.2.4.2.14 --- php-src/ext/odbc/php_odbc.c:1.189.2.4.2.13 Thu May 14 01:27:23 2009 +++ php-src/ext/odbc/php_odbc.c Thu May 14 17:25:51 2009 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.c,v 1.189.2.4.2.13 2009/05/14 01:27:23 felipe Exp $ */ +/* $Id: php_odbc.c,v 1.189.2.4.2.14 2009/05/14 17:25:51 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2863,7 +2863,7 @@ PHP_FUNCTION(odbc_tables) { zval **pv_conn, **pv_cat, **pv_schema, **pv_table, **pv_type; - odbc_result *result = NULL; + odbc_result *result = NULL; odbc_connection *conn; char *cat = NULL, *schema = NULL, *table = NULL, *type = NULL; RETCODE rc; @@ -2884,8 +2884,10 @@ convert_to_string_ex(pv_schema); schema = Z_STRVAL_PP(pv_schema); case 2: - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != IS_NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + } } ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", le_conn, le_pconn); @@ -2967,9 +2969,11 @@ schema = Z_STRVAL_PP(pv_schema); schema_len = Z_STRLEN_PP(pv_schema); case 2: - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); - cat_len = Z_STRLEN_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + cat_len = Z_STRLEN_PP(pv_cat); + } } ZEND_FETCH_RESOURCE2(conn, odbc_connection *, pv_conn, -1, "ODBC-Link", le_conn, le_pconn); @@ -2994,10 +2998,6 @@ */ if (table && strlen(table) && schema && !strlen(schema)) schema = NULL; - if (cat && cat_len == 0) { - cat = NULL; - } - rc = SQLColumns(result->stmt, cat, cat_len, schema, schema_len, @@ -3044,8 +3044,10 @@ if (zend_get_parameters_ex(5, &pv_conn, &pv_cat, &pv_schema, &pv_table, &pv_column) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != IS_NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + } convert_to_string_ex(pv_schema); schema = Z_STRVAL_PP(pv_schema); convert_to_string_ex(pv_table); @@ -3072,10 +3074,6 @@ efree(result); RETURN_FALSE; } - - if (cat_len == 0) { - cat = NULL; - } rc = SQLColumnPrivileges(result->stmt, cat, SAFE_SQL_NTS(cat), @@ -3114,7 +3112,7 @@ { zval **pv_conn, **pv_pcat, **pv_pschema, **pv_ptable; zval **pv_fcat, **pv_fschema, **pv_ftable; - odbc_result *result = NULL; + odbc_result *result = NULL; odbc_connection *conn; char *pcat = NULL, *pschema = NULL, *ptable = NULL; char *fcat = NULL, *fschema = NULL, *ftable = NULL; @@ -3127,8 +3125,10 @@ &pv_fcat, &pv_fschema, &pv_ftable) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_string_ex(pv_pcat); - pcat = Z_STRVAL_PP(pv_pcat); + if (Z_TYPE_PP(pv_pcat) != IS_NULL) { + convert_to_string_ex(pv_pcat); + pcat = Z_STRVAL_PP(pv_pcat); + } convert_to_string_ex(pv_pschema); pschema = Z_STRVAL_PP(pv_pschema); convert_to_string_ex(pv_ptable); @@ -3170,10 +3170,6 @@ efree(result); RETURN_FALSE; } - - if (pcat_len == 0) { - pcat = NULL; - } rc = SQLForeignKeys(result->stmt, pcat, SAFE_SQL_NTS(pcat), @@ -3291,8 +3287,10 @@ if (zend_get_parameters_ex(4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != IS_NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + } convert_to_string_ex(pv_schema); schema = Z_STRVAL_PP(pv_schema); convert_to_string_ex(pv_table); @@ -3317,10 +3315,6 @@ efree(result); RETURN_FALSE; } - - if (cat_len == 0) { - cat = NULL; - } rc = SQLPrimaryKeys(result->stmt, cat, SAFE_SQL_NTS(cat), @@ -3513,7 +3507,7 @@ { zval **pv_conn, **pv_type, **pv_cat, **pv_schema, **pv_name; zval **pv_scope, **pv_nullable; - odbc_result *result = NULL; + odbc_result *result = NULL; odbc_connection *conn; char *cat = NULL, *schema = NULL, *name = NULL; SQLUSMALLINT type; @@ -3529,8 +3523,10 @@ } convert_to_long_ex(pv_type); type = (SQLUSMALLINT) Z_LVAL_PP(pv_type); - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != IS_NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + } convert_to_string_ex(pv_schema); schema = Z_STRVAL_PP(pv_schema); convert_to_string_ex(pv_name); @@ -3559,10 +3555,6 @@ efree(result); RETURN_FALSE; } - - if (cat_len == 0) { - cat = NULL; - } rc = SQLSpecialColumns(result->stmt, type, @@ -3614,8 +3606,10 @@ &pv_name, &pv_unique, &pv_reserved) == FAILURE) { WRONG_PARAM_COUNT; } - convert_to_string_ex(pv_cat); - cat = Z_STRVAL_PP(pv_cat); + if (Z_TYPE_PP(pv_cat) != IS_NULL) { + convert_to_string_ex(pv_cat); + cat = Z_STRVAL_PP(pv_cat); + } convert_to_string_ex(pv_schema); schema = Z_STRVAL_PP(pv_schema); convert_to_string_ex(pv_name); @@ -3644,10 +3638,6 @@ efree(result); RETURN_FALSE; } - - if (cat_len == 0) { - cat = NULL; - } rc = SQLStatistics(result->stmt, cat, SAFE_SQL_NTS(cat), @@ -3722,10 +3712,6 @@ efree(result); RETURN_FALSE; } - - if (cat_len == 0) { - cat = NULL; - } rc = SQLTablePrivileges(result->stmt, cat, SAFE_SQL_NTS(cat),
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php