From: Dmitry Stogov Date: Wed, 7 May 2014 19:19:28 +0000 (+0400) Subject: We shouldn't modify strings in-place (it may be interned strings stored in SHN) X-Git-Tag: POST_PHPNG_MERGE~384^2~24^2~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=223df9ceea08a9b186f320114e40914552f48716;p=php We shouldn't modify strings in-place (it may be interned strings stored in SHN) --- diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index c5b2b9fa1a..da39634c79 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -208,7 +208,6 @@ static PHP_METHOD(PDO, dbh_constructor) zval *options = NULL; char alt_dsn[512]; int call_factory = 1; - char tmp; if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!s!a!", &data_source, &data_source_len, &username, &usernamelen, &password, &passwordlen, &options)) { @@ -256,10 +255,8 @@ static PHP_METHOD(PDO, dbh_constructor) } } - tmp = data_source[colon - data_source]; - data_source[colon - data_source] = '\0'; driver = pdo_find_driver(data_source, colon - data_source); - data_source[colon - data_source] = tmp; + if (!driver) { /* NB: don't want to include the data_source in the error message as * it might contain a password */