[php-src] master: Merge branch 'PHP-8.5'
Ilia Alshanetsky <[email protected]>
| Newsgroups | gmane.comp.php.cvs.general |
|---|---|
| Message-ID | <[email protected]> |
Author: Ilia Alshanetsky (iliaal)
Date: 2026-06-30T07:37:40-04:00
Commit: https://github.com/php/php-src/commit/c0872ea33c4fe4ccb282d372284be0f5d0d194b8
Raw diff: https://github.com/php/php-src/commit/c0872ea33c4fe4ccb282d372284be0f5d0d194b8.diff
Merge branch 'PHP-8.5'
* PHP-8.5:
Fix GH-20726: crash in pdo_odbc with pooling and no credentials (#22512)
Changed paths:
M ext/pdo_odbc/odbc_driver.c
Diff:
diff --git a/ext/pdo_odbc/odbc_driver.c b/ext/pdo_odbc/odbc_driver.c
index 3c8afe2d4215..e499c2fd45b9 100644
--- a/ext/pdo_odbc/odbc_driver.c
+++ b/ext/pdo_odbc/odbc_driver.c
@@ -603,7 +603,11 @@ static int pdo_odbc_handle_factory(pdo_dbh_t *dbh, zval *driver_options) /* {{{
dsnbuf, sizeof(dsnbuf)-1, &dsnbuflen, SQL_DRIVER_NOPROMPT);
}
if (!use_direct) {
- rc = SQLConnect(H->dbc, (SQLCHAR *) dbh->data_source, SQL_NTS, (SQLCHAR *) dbh->username, SQL_NTS, (SQLCHAR *) dbh->password, SQL_NTS);
+ /* unixODBC pooling strcmp()s the credentials when matching a cached
+ * connection and crashes on a NULL username/password, so pass "". */
+ rc = SQLConnect(H->dbc, (SQLCHAR *) dbh->data_source, SQL_NTS,
+ (SQLCHAR *) (dbh->username ? dbh->username : ""), SQL_NTS,
+ (SQLCHAR *) (dbh->password ? dbh->password : ""), SQL_NTS);
}
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {