PHP 4.0 Bug #8951 Updated: php_mysql_do_connect -> parameter host modified when using port or socket

From: Date: Sun, 28 Jan 2001 02:34:57 +0000
Subject: PHP 4.0 Bug #8951 Updated: php_mysql_do_connect -> parameter host modified when using port or socket
Groups: php.dev 
Request: Send a blank email to php-dev+get-45182@lists.php.net to get a copy of this message
ID: 8951 Updated by: sniper Reported By: jiri.kaderavek@webstep.net Old-Status: Open Status: Feedback Bug Type: MySQL related Assigned To: Comments: Could you please try the latest snapshot from http://snaps.php.net/ to check if this is fixed already? --Jani Previous Comments: --------------------------------------------------------------------------- [2001-01-27 12:46:46] jiri.kaderavek@webstep.net 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; } ... } --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=8951

« previous php.dev (#45182) next »