From 3d73cd23d0e337560b8c044c728af3cf8a192b62 Mon Sep 17 00:00:00 2001 From: Igor Solodovnikov Date: Wed, 23 Apr 2014 12:46:00 +0300 Subject: Bug #17514920 MYSQL_THREAD_INIT() CALL WITHOUT MYSQL_INIT() IS CRASHING IN WINDOWS It is error to call mysql_thread_init() before libmysql is initialized with mysql_library_init(). Thus to fix this bug we need to detect if library was initialized and return error result if mysql_thread_init() is called with uninitialized library. Fixed by checking my_thread_global_init_done and returning nonzero if the library is not initialized. --- mysys/my_thr_init.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'mysys/my_thr_init.c') diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index d213b67377b..5d1376ea3ce 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -313,6 +313,9 @@ my_bool my_thread_init(void) struct st_my_thread_var *tmp; my_bool error=0; + if (!my_thread_global_init_done) + return 1; /* cannot proceed with unintialized library */ + #ifdef EXTRA_DEBUG_THREADS fprintf(stderr,"my_thread_init(): thread_id: 0x%lx\n", (ulong) pthread_self()); -- cgit v1.2.1