From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.0.4pl1
PHP Bug Type:     MySQL related
Bug description:  php_mysql_do_connect -> parameter host modified when using port 
or socket

Parameter $host is modified in function php_mysql_do_connect(). Example:

$host = "localhost:/tmp/mysql.sock";
$conn = mysql_connect($host .....
echo $host;

Output is: localhost/tmp/mysql.sock 
because of replacing of ":" charcter by null char in
this part of php_mysql_do_connect

===================

static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent)
{                                       
        char *user,*passwd,*host,*socket=NULL,*tmp;
        char *hashed_details;
        int hashed_details_length,port = MYSQL_PORT;
....
        /* We cannot use mysql_port anymore in windows, need to use
         * mysql_real_connect() to set the port.
         */

         if (host && (tmp=strchr(host,':'))) {
                *tmp=0;
                tmp++;
                if (tmp[0] != '/') {
                        port = atoi(tmp);
                } else {
                        socket = tmp;
                }
.....
}

===================


solution:
copying of *host content through *host2 pointer

===================


static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent)
{                                       
        char *user,*passwd,*host,*socket=NULL,*tmp,*host2;
        char *hashed_details;
        int hashed_details_length,port = MYSQL_PORT;
....
        /* We cannot use mysql_port anymore in windows, need to use
         * mysql_real_connect() to set the port.
         */
        
host2 = (char *) emalloc(strlen(SAFE_STRING(host) + 1));
        strcpy(host2, host);
        host = host2;

         if (host && (tmp=strchr(host,':'))) {
                *tmp=0;
                tmp++;
                if (tmp[0] != '/') {
                        port = atoi(tmp);
                } else {
                        socket = tmp;
                }
...
}


-- 
Edit Bug report at: http://bugs.php.net/?id=8951&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to