Commit: d9be9e0231277b7baf457f9a59dc7616624f8e2e Author: Stanley Sufficool <ssuffic...@php.net> Sat, 1 Jun 2013 00:03:44 -0700 Parents: 3b54de3db008490eeae8fba2e471a41906d1eae5 Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d9be9e0231277b7baf457f9a59dc7616624f8e2e Log: FIX BUG #60512 (the correct way this time) Last fix just truncated the password. This fixes the message handler per the bug report. Bugs: https://bugs.php.net/60512 Changed paths: M ext/pdo_dblib/dblib_driver.c M ext/pdo_dblib/pdo_dblib.c Diff: diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c index fb0d6d3..9baedbe 100644 --- a/ext/pdo_dblib/dblib_driver.c +++ b/ext/pdo_dblib/dblib_driver.c @@ -290,11 +290,6 @@ static int pdo_dblib_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ } } - /* - * FreeTDS will not return FAIL but will segfault on passwords longer than 30 chars - */ - if(strlen(dbh->password) > 30) dbh->password[30] = 0; - if (dbh->password) { if(FAIL == DBSETLPWD(H->login, dbh->password)) { goto cleanup; diff --git a/ext/pdo_dblib/pdo_dblib.c b/ext/pdo_dblib/pdo_dblib.c index ed79aea..bc5d364 100644 --- a/ext/pdo_dblib/pdo_dblib.c +++ b/ext/pdo_dblib/pdo_dblib.c @@ -93,8 +93,12 @@ int error_handler(DBPROCESS *dbproc, int severity, int dberr, char *state = "HY000"; TSRMLS_FETCH(); - einfo = (pdo_dblib_err*)dbgetuserdata(dbproc); - if (!einfo) einfo = &DBLIB_G(err); + if(dbproc) { + einfo = (pdo_dblib_err*)dbgetuserdata(dbproc); + if (!einfo) einfo = &DBLIB_G(err); + } else { + einfo = &DBLIB_G(err); + } einfo->severity = severity; einfo->oserr = oserr; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php