]> granicus.if.org Git - php/commitdiff
fix segfault
authorAntony Dovgal <tony2001@php.net>
Fri, 27 Mar 2009 22:22:02 +0000 (22:22 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 27 Mar 2009 22:22:02 +0000 (22:22 +0000)
ext/mysql/php_mysql.c

index 598ab5a75401827c3cb638e0517e7d8f989dbe68..b396febc7aa2f3a009d27f566f74abd7ec970e3a 100644 (file)
@@ -625,7 +625,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
        int hashed_details_length, port = MYSQL_PORT;
        long client_flags = 0;
        php_mysql_conn *mysql=NULL;
-       char *encoding = mysql_character_set_name(mysql->conn);
+       char *encoding;
 #if MYSQL_VERSION_ID <= 32230
        void (*handler) (int);
 #endif
@@ -789,6 +789,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 #ifdef MYSQL_HAS_SET_CHARSET
                        mysql_set_character_set(mysql->conn, "utf8");
 #else
+                       encoding = mysql_character_set_name(mysql->conn);
                        if (strcasecmp((char*)encoding, "utf8")) {
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
                                MYSQL_DO_CONNECT_RETURN_FALSE();