]> granicus.if.org Git - php/commitdiff
merge
authorandrey <andrey@php.net>
Fri, 29 Jun 2012 13:58:53 +0000 (16:58 +0300)
committerandrey <andrey@php.net>
Fri, 29 Jun 2012 13:58:53 +0000 (16:58 +0300)
ext/mysqlnd/mysqlnd.c

index cc3a3917a18074f87fdff8d79e7adc6246a9c554..417ff5ef2b5aa3cef32b4fea854b23de5c232c90 100644 (file)
@@ -789,6 +789,13 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect_handshake)(MYSQLND_CONN_DATA * conn,
        conn->server_version    = mnd_pestrdup(greet_packet->server_version, conn->persistent);
 
        conn->greet_charset = mysqlnd_find_charset_nr(greet_packet->charset_no);
+       if (!conn->greet_charset) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING,
+                       "Server sent charset (%d) unknown to the client. Please, report to the developers", greet_packet->charset_no);
+               SET_CLIENT_ERROR(*conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE,
+                       "Server sent charset unknown to the client. Please, report to the developers");
+               goto err;
+       }
 
        if (FAIL == mysqlnd_connect_run_authentication(conn, user, passwd, db, db_len, (size_t) passwd_len,
                                                                                                   greet_packet, conn->options, mysql_flags TSRMLS_CC))