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

Reply via email to