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