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