@@ -4637,17 +4637,27 @@ const char * STDCALL mysql_error(MYSQL *mysql)
46374637
46384638 RETURN
46394639 Signed number > 323000
4640+ Zero if there is no connection
46404641*/
46414642
46424643ulong STDCALL
46434644mysql_get_server_version (MYSQL * mysql )
46444645{
4645- uint major , minor , version ;
4646- char * pos = mysql -> server_version , * end_pos ;
4647- major = (uint ) strtoul (pos , & end_pos , 10 ); pos = end_pos + 1 ;
4648- minor = (uint ) strtoul (pos , & end_pos , 10 ); pos = end_pos + 1 ;
4649- version = (uint ) strtoul (pos , & end_pos , 10 );
4650- return (ulong ) major * 10000L + (ulong ) (minor * 100 + version );
4646+ ulong major = 0 , minor = 0 , version = 0 ;
4647+
4648+ if (mysql -> server_version )
4649+ {
4650+ char * pos = mysql -> server_version , * end_pos ;
4651+ major = strtoul (pos , & end_pos , 10 ); pos = end_pos + 1 ;
4652+ minor = strtoul (pos , & end_pos , 10 ); pos = end_pos + 1 ;
4653+ version = strtoul (pos , & end_pos , 10 );
4654+ }
4655+ else
4656+ {
4657+ set_mysql_error (mysql , CR_COMMANDS_OUT_OF_SYNC , unknown_sqlstate );
4658+ }
4659+
4660+ return major * 10000 + minor * 100 + version ;
46514661}
46524662
46534663
0 commit comments