com php-src: Merge remote-tracking branch 'origin/master' into str_size_and_int64: ext/pdo_pgsql/pgsql_drive r.c sapi/phpdbg/phpdbg_cmd.c

From: Date: Sun, 19 Jan 2014 01:17:07 +0000
Subject: com php-src: Merge remote-tracking branch 'origin/master' into str_size_and_int64: ext/pdo_pgsql/pgsql_drive r.c sapi/phpdbg/phpdbg_cmd.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-75696@lists.php.net to get a copy of this message
Commit: e3cfbef33f4a7ea8074a8724d2072d967f740321 Author: Anatol Belski <ab@php.net> Sun, 19 Jan 2014 02:17:07 +0100 Parents: bc7dc1913ced7061027a50e17351d20f9bf5e55f d788a85736abd4701004f3dcb3881ec7a7f9a4df Branches: str_size_and_int64 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e3cfbef33f4a7ea8074a8724d2072d967f740321 Log: Merge remote-tracking branch 'origin/master' into str_size_and_int64 Conflicts: ext/pdo_pgsql/pgsql_driver.c Changed paths: MM ext/pdo_pgsql/pgsql_driver.c MM sapi/phpdbg/phpdbg_cmd.c Diff: diff --cc ext/pdo_pgsql/pgsql_driver.c index 3a04ca6,9b083f6..7fd6886 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@@ -1159,7 -1155,8 +1159,8 @@@ static int pdo_pgsql_handle_factory(pdo pdo_pgsql_db_handle *H; int ret = 0; char *conn_str, *p, *e; + char *tmp_pass; - long connect_timeout = 30; + php_int_t connect_timeout = 30; H = pecalloc(1, sizeof(pdo_pgsql_db_handle), dbh->is_persistent); dbh->driver_data = H; @@@ -1177,18 -1174,41 +1178,41 @@@ } if (driver_options) { - connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC); + connect_timeout = pdo_attr_ival(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC); } + if (dbh->password) { + if (dbh->password[0] != '\'' && dbh->password[strlen(dbh->password) - 1] != '\'') { + char *pwd = dbh->password; + int pos = 1; + + tmp_pass = safe_emalloc(2, strlen(dbh->password), 3); + tmp_pass[0] = '\''; + + while (*pwd != '\0') { + if (*pwd == '\\' || *pwd == '\'') { + tmp_pass[pos++] = '\\'; + } + + tmp_pass[pos++] = *pwd++; + } + + tmp_pass[pos++] = '\''; + tmp_pass[pos] = '\0'; + } else { + tmp_pass = dbh->password; + } + } + /* support both full connection string & connection string + login and/or password */ if (dbh->username && dbh->password) { - spprintf(&conn_str, 0, "%s user=%s password=%s connect_timeout=%pd", dbh->data_source, dbh->username, dbh->password, connect_timeout); - spprintf(&conn_str, 0, "%s user=%s password=%s connect_timeout=%ld", dbh->data_source, dbh->username, tmp_pass, connect_timeout); ++ spprintf(&conn_str, 0, "%s user=%s password=%s connect_timeout=%pd", dbh->data_source, dbh->username, tmp_pass, connect_timeout); } else if (dbh->username) { - spprintf(&conn_str, 0, "%s user=%s connect_timeout=%ld", dbh->data_source, dbh->username, connect_timeout); + spprintf(&conn_str, 0, "%s user=%s connect_timeout=%pd", dbh->data_source, dbh->username, connect_timeout); } else if (dbh->password) { - spprintf(&conn_str, 0, "%s password=%s connect_timeout=%pd", dbh->data_source, dbh->password, connect_timeout); - spprintf(&conn_str, 0, "%s password=%s connect_timeout=%ld", dbh->data_source, tmp_pass, connect_timeout); ++ spprintf(&conn_str, 0, "%s password=%s connect_timeout=%pd", dbh->data_source, tmp_pass, connect_timeout); } else { - spprintf(&conn_str, 0, "%s connect_timeout=%ld", (char *) dbh->data_source, connect_timeout); + spprintf(&conn_str, 0, "%s connect_timeout=%pd", (char *) dbh->data_source, connect_timeout); } H->server = PQconnectdb(conn_str);

« previous php.cvs (#75696) next »