summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2013-02-04 14:27:56 +0100
committerAndrey Hristov <andrey@php.net>2013-02-04 14:27:56 +0100
commit740b823be80a29e4c6537d4053eb7bad0fae6c41 (patch)
tree92fe35da7e6a365f4438ca63bed9cfc48c3748e1
parent643ce95b5bd80e744c7f5e6ac33138f40ed9a1f7 (diff)
downloadphp-git-740b823be80a29e4c6537d4053eb7bad0fae6c41.tar.gz
check the validity of the parameter
-rw-r--r--ext/mysqlnd/mysqlnd.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index 0b81ac99fa..90c2b73eae 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -2321,7 +2321,14 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
break;
case MYSQL_SET_CHARSET_NAME:
{
- char * new_charset_name = mnd_pestrdup(value, conn->persistent);
+ char * new_charset_name;
+ if (!mysqlnd_find_charset_name(value)) {
+ SET_CLIENT_ERROR(*conn->error_info, CR_CANT_FIND_CHARSET, UNKNOWN_SQLSTATE, "Unknown character set");
+ ret = FAIL;
+ break;
+ }
+
+ new_charset_name = mnd_pestrdup(value, conn->persistent);
if (!new_charset_name) {
goto oom;
}