iliaa Fri Jul 8 22:53:07 2005 EDT
Modified files:
/php-src/ext/pdo pdo_dbh.c
/php-src/ext/pdo/tests pdo_test.inc
Log:
Safer way of allowing 'blank' user/pass.
# Thanks Wez.
http://cvs.php.net/diff.php/php-src/ext/pdo/pdo_dbh.c?r1=1.80&r2=1.81&ty=u
Index: php-src/ext/pdo/pdo_dbh.c
diff -u php-src/ext/pdo/pdo_dbh.c:1.80 php-src/ext/pdo/pdo_dbh.c:1.81
--- php-src/ext/pdo/pdo_dbh.c:1.80 Fri Jul 8 19:33:35 2005
+++ php-src/ext/pdo/pdo_dbh.c Fri Jul 8 22:53:05 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_dbh.c,v 1.80 2005/07/08 23:33:35 iliaa Exp $ */
+/* $Id: pdo_dbh.c,v 1.81 2005/07/09 02:53:05 iliaa Exp $ */
/* The PDO Database Handle Class */
@@ -220,7 +220,7 @@
char alt_dsn[512];
int call_factory = 1;
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s|ssa!", &data_source, &data_source_len,
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s|s!s!a!", &data_source, &data_source_len,
&username, &usernamelen, &password,
&passwordlen, &options)) {
ZVAL_NULL(object);
return;
@@ -357,12 +357,12 @@
dbh->data_source_len = strlen(colon + 1);
dbh->data_source = (const char*)pestrdup(colon + 1, is_persistent);
- dbh->username = usernamelen ? pestrdup(username, is_persistent) : NULL;
- dbh->password = passwordlen ? pestrdup(password, is_persistent) : NULL;
+ dbh->username = username ? pestrdup(username, is_persistent) : NULL;
+ dbh->password = password ? pestrdup(password, is_persistent) : NULL;
dbh->auto_commit = pdo_attr_lval(options, PDO_ATTR_AUTOCOMMIT, 1
TSRMLS_CC);
- if (!dbh->data_source || (usernamelen && !dbh->username) ||
(passwordlen && !dbh->password)) {
+ if (!dbh->data_source || (username && !dbh->username) || (password &&
!dbh->password)) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "out of memory");
}
http://cvs.php.net/diff.php/php-src/ext/pdo/tests/pdo_test.inc?r1=1.6&r2=1.7&ty=u
Index: php-src/ext/pdo/tests/pdo_test.inc
diff -u php-src/ext/pdo/tests/pdo_test.inc:1.6
php-src/ext/pdo/tests/pdo_test.inc:1.7
--- php-src/ext/pdo/tests/pdo_test.inc:1.6 Fri Jul 8 00:13:00 2005
+++ php-src/ext/pdo/tests/pdo_test.inc Fri Jul 8 22:53:07 2005
@@ -14,6 +14,9 @@
} else {
$attr = null;
}
+
+ if ($user === false) $user = NULL;
+ if ($pass === false) $pass = NULL;
$db = new $classname($dsn, $user, $pass, $attr);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php