]> granicus.if.org Git - php/commitdiff
- Make clear what's going on and avoid overwriting parameters
authorJohannes Schlüter <johannes@php.net>
Tue, 12 Feb 2008 20:43:28 +0000 (20:43 +0000)
committerJohannes Schlüter <johannes@php.net>
Tue, 12 Feb 2008 20:43:28 +0000 (20:43 +0000)
ext/mysql/php_mysql.c

index 8f01118ba31ab7043b17e0c14b1c977df2c745b3..31d645effc498dbf85ec2cbb1c2f29856b93e3cb 100644 (file)
@@ -642,16 +642,20 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
                host_and_port = MySG(default_host);
                user = MySG(default_user);
                passwd = MySG(default_password);
-               
-               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&bl", &host_and_port, &host_len, UG(utf8_conv),
+       
+               /* mysql_pconnect does not support new_link parameter */
+               if (persistent) {       
+                       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&l", &host_and_port, &host_len, UG(utf8_conv),
+                                                                       &user, &user_len, UG(utf8_conv), &passwd, &passwd_len, UG(utf8_conv),
+                                                                       &client_flags)==FAILURE) {
+                               return;
+                       }
+               } else {
+                       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s&s&s&bl", &host_and_port, &host_len, UG(utf8_conv),
                                                                        &user, &user_len, UG(utf8_conv), &passwd, &passwd_len, UG(utf8_conv),
                                                                        &new_link, &client_flags)==FAILURE) {
-                       return;
-               }
-
-               /* mysql_pconnect does not support new_link parameter */
-               if (persistent) {
-                       client_flags= new_link;
+                               return;
+                       }
                }
 
                /* disable local infile option for open_basedir */