diff options
| author | Andrey Hristov <andrey@php.net> | 2011-01-14 13:00:42 +0000 |
|---|---|---|
| committer | Andrey Hristov <andrey@php.net> | 2011-01-14 13:00:42 +0000 |
| commit | 5ca5c2bf43c292b687642adb4b239d651384713e (patch) | |
| tree | c9a9b72a3c04ccc44579a68834409b7f5fc31772 /ext/mysqli | |
| parent | 0048446fddb506a06a37ed7c0f31a28ba4d7d215 (diff) | |
| download | php-git-5ca5c2bf43c292b687642adb4b239d651384713e.tar.gz | |
Change things to allow passing of the password length
to mysqlnd. This is needed as a password might include
a \0 and thus we need to be binary safe.
Diffstat (limited to 'ext/mysqli')
| -rw-r--r-- | ext/mysqli/mysqli_api.c | 4 | ||||
| -rw-r--r-- | ext/mysqli/mysqli_libmysql.h | 2 | ||||
| -rw-r--r-- | ext/mysqli/mysqli_mysqlnd.h | 2 | ||||
| -rw-r--r-- | ext/mysqli/mysqli_nonapi.c | 2 |
4 files changed, 7 insertions, 3 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index c75c9f8ec2..724c1e0ab2 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -535,7 +535,11 @@ PHP_FUNCTION(mysqli_change_user) old_charset = mysql->mysql->charset; #endif +#if defined(MYSQLI_USE_MYSQLND) + rc = mysqlnd_change_user_ex(mysql->mysql, user, password, dbname, FALSE, (size_t) password_len); +#else rc = mysql_change_user(mysql->mysql, user, password, dbname); +#endif MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql); if (rc) { diff --git a/ext/mysqli/mysqli_libmysql.h b/ext/mysqli/mysqli_libmysql.h index ca6770af11..3ec06cdd08 100644 --- a/ext/mysqli/mysqli_libmysql.h +++ b/ext/mysqli/mysqli_libmysql.h @@ -38,7 +38,7 @@ #define mysqli_close(c, is_forced) mysql_close((c)) #define mysqli_stmt_close(c, implicit) mysql_stmt_close((c)) #define mysqli_free_result(r, is_forced) mysql_free_result((r)) -#define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d)) +#define mysqli_change_user_silent(c, u, p, d, p_len) mysql_change_user((c), (u), (p), (d)) /* diff --git a/ext/mysqli/mysqli_mysqlnd.h b/ext/mysqli/mysqli_mysqlnd.h index 3072835c55..e4e06daeaa 100644 --- a/ext/mysqli/mysqli_mysqlnd.h +++ b/ext/mysqli/mysqli_mysqlnd.h @@ -40,7 +40,7 @@ #define mysqli_stmt_close(c, implicit) mysqlnd_stmt_close((c), (implicit)) #define mysqli_free_result(r, implicit) mysqlnd_free_result((r), (implicit)) #define mysqli_async_query(c, q, l) mysqlnd_async_query((c), (q), (l)) -#define mysqli_change_user_silent(c, u, p, d) mysqlnd_change_user((c), (u), (p), (d), TRUE) +#define mysqli_change_user_silent(c, u, p, d, p_len) mysqlnd_change_user_ex((c), (u), (p), (d), TRUE, (size_t)(p_len)) #define HAVE_STMT_NEXT_RESULT diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 04755df224..11c0618c49 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -172,7 +172,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne /* reset variables */ #ifndef MYSQLI_NO_CHANGE_USER_ON_PCONNECT - if (!mysqli_change_user_silent(mysql->mysql, username, passwd, dbname)) { + if (!mysqli_change_user_silent(mysql->mysql, username, passwd, dbname, passwd_len)) { #else if (!mysql_ping(mysql->mysql)) { #endif |
