cvs: php-src /ext/pdo pdo_dbh.c /ext/pdo/tests pdo_test.inc
| From: | Ilia Alshanetsky | Date: | Sat, 09 Jul 2005 02:53:07 +0000 |
| Subject: | cvs: php-src /ext/pdo pdo_dbh.c /ext/pdo/tests pdo_test.inc | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-32834@lists.php.net to get a copy of this message | ||
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);