diff --git a/appveyor.yml b/appveyor.yml index e1f972ae..89566c92 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,6 +6,11 @@ os: Visual Studio 2015 configuration: RelWithDebInfo platform: x64 clone_folder: c:\projects\mariadb-connector-c +environment: + MYSQL_TEST_USER: root + MYSQL_TEST_HOST: 127.0.0.1 + MYSQL_TEST_PASSWD: Password12! +services: mysql56 before_build: - ps: >- cd c:\projects\mariadb-connector-c @@ -18,27 +23,7 @@ build: parallel: true verbosity: minimal test_script: -- ps: >- - mkdir c:\tmp - - (new-object System.Net.WebClient).DownloadFile('https://downloads.mariadb.org/f/mariadb-10.1.8/winx64-packages/mariadb-10.1.8-winx64.zip/from/http%3A/mirrors.n-ix.net/mariadb/?serve','C:\tmp\') - - unzip c:\tmp\mariadb-10.1.8-winx64.zip - - SET BIN_DIR=c:\tmp\mariadb\mariadb-10.1.8-winx64 - - SET CERT_DIR=c:\projects\mariadb-connector-c\unittest\libmariadb\certs - - start %BINDIR%\mysqld.exe --console --max_allowed_packet=1G --enable-named-pipe --socket=JDBC-test-socket --ssl-ca=%CERTDIR%\cacert.pem --ssl-cert=%CERTDIR%\server-cert.pem --ssl-key=%CERTDIR%\server-key.pem - - timeout 20 - - set MYSQL_TEST_USER=root - - set MYSQL_TEST_HOST=127.0.0.1 - - cd \projects\mariadb-connector-c\unittest\libmariadb +- cmd: >- + cd c:\projects\mariadb-connector-c\unittest\libmariadb ctest -V - - call %BINDIR%\mysqladmin -uroot shutdown diff --git a/include/my_context.h b/include/my_context.h index 591a064a..2694fd09 100644 --- a/include/my_context.h +++ b/include/my_context.h @@ -112,6 +112,10 @@ struct my_context { }; #endif +extern void +my_context_install_suspend_resume_hook(struct mysql_async_context *b, + void (*hook)(my_bool, void *), + void *user_data); /* Initialize an asynchroneous context object. diff --git a/include/mysql.h b/include/mysql.h index c5966abb..25dddf0f 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -633,7 +633,6 @@ struct st_mysql_methods { int (*db_stmt_fetch_to_bind)(MYSQL_STMT *stmt, unsigned char *row); void (*db_stmt_flush_unbuffered)(MYSQL_STMT *stmt); void (*set_error)(MYSQL *mysql, unsigned int error_nr, const char *sqlstate, const char *format, ...); - my_bool (*reconnect)(MYSQL *mysql); }; /* synonyms/aliases functions */ diff --git a/libmariadb/libmariadb.c b/libmariadb/libmariadb.c index 137da400..bff15c96 100644 --- a/libmariadb/libmariadb.c +++ b/libmariadb/libmariadb.c @@ -37,6 +37,7 @@ #include #include #include + #ifdef HAVE_PWD_H #include #endif @@ -131,7 +132,7 @@ static void end_server(MYSQL *mysql); static void mysql_close_memory(MYSQL *mysql); void read_user_name(char *name); static void append_wild(char *to,char *end,const char *wild); -my_bool mysql_reconnect(MYSQL *mysql); +my_bool STDCALL mysql_reconnect(MYSQL *mysql); static int cli_report_progress(MYSQL *mysql, uchar *packet, uint length); extern int mysql_client_plugin_init(); @@ -1228,7 +1229,7 @@ uchar *ma_send_connect_attr(MYSQL *mysql, uchar *buffer) size_t len; uchar *p= hash_element(&mysql->options.extension->connect_attrs, i); - len= strlen(p); + len= strlen((char *)p); buffer= mysql_net_store_length(buffer, len); memcpy(buffer, p, len); buffer+= (len); @@ -2606,7 +2607,7 @@ uchar *ma_get_hash_keyval(const uchar *hash_entry, */ uchar *p= (uchar *)hash_entry; size_t len= strlen(p); - *length= len; + *length= (unsigned int)len; return p; } @@ -3060,9 +3061,6 @@ mysql_get_optionv(MYSQL *mysql, enum mysql_option option, void *arg, ...) void *arg1; char **val= NULL; - if (!elements) - goto error; - if (arg) key= *(char ***)arg; @@ -3073,6 +3071,9 @@ mysql_get_optionv(MYSQL *mysql, enum mysql_option option, void *arg, ...) if (!(elements= va_arg(ap, unsigned int *))) goto error; + if (!elements) + goto error; + *elements= 0; if (!mysql->options.extension || @@ -3122,7 +3123,7 @@ mysql_get_optionv(MYSQL *mysql, enum mysql_option option, void *arg, ...) char *key= (char *)arg; if (key && data && mysql->options.extension && hash_inited(&mysql->options.extension->userdata) && (p= (uchar *)hash_search(&mysql->options.extension->userdata, (uchar *)key, - strlen((char *)key)))) + (uint)strlen((char *)key)))) { p+= strlen(key) + 1; *((void **)data)= *((void **)p); @@ -3580,6 +3581,4 @@ struct st_mysql_methods MARIADB_DEFAULT_METHODS = { mthd_stmt_flush_unbuffered, /* set error */ my_set_error, - /* reconnect */ - mysql_reconnect }; diff --git a/libmariadb/ma_pvio.c b/libmariadb/ma_pvio.c index 9ba111b6..054ef45d 100644 --- a/libmariadb/ma_pvio.c +++ b/libmariadb/ma_pvio.c @@ -490,7 +490,7 @@ my_bool ma_pvio_has_data(MARIADB_PVIO *pvio, ssize_t *data_len) /* check if we still have unread data in cache */ if (pvio->cache) if (pvio->cache_pos > pvio->cache) - return pvio->cache_pos - pvio->cache; + return test(pvio->cache_pos - pvio->cache); if (pvio && pvio->methods->has_data) return pvio->methods->has_data(pvio, data_len); return 1; diff --git a/libmariadb/my_static.c b/libmariadb/my_static.c index 61d25574..9a892996 100644 --- a/libmariadb/my_static.c +++ b/libmariadb/my_static.c @@ -73,8 +73,6 @@ uint sf_malloc_prehunc=0, /* If you have problem with core- */ size_t lCurMemory = 0L; /* Current memory usage */ size_t lMaxMemory = 0L; /* Maximum memory usage */ uint cNewCount = 0; /* Number of times NEW() was called */ -unsigned char *sf_min_adress= (unsigned char*) ~(unsigned long) 0L, - *sf_max_adress= (unsigned char*) 0L; /* Root of the linked list of remembers */ struct remember *pRememberRoot = NULL; diff --git a/libmariadb/my_static.h b/libmariadb/my_static.h index a30b462d..8a6be025 100644 --- a/libmariadb/my_static.h +++ b/libmariadb/my_static.h @@ -61,7 +61,6 @@ extern uint my_once_extra; extern int _my_tempnam_used; #endif -extern unsigned char *sf_min_adress,*sf_max_adress; extern uint cNewCount; extern struct remember *pRememberRoot; diff --git a/libmariadb/mysql_async.c b/libmariadb/mysql_async.c index 4a86ab90..f7dfc998 100644 --- a/libmariadb/mysql_async.c +++ b/libmariadb/mysql_async.c @@ -394,7 +394,7 @@ MK_ASYNC_CONT_BODY( struct mysql_real_query_params { MYSQL *mysql; const char *stmt_str; - unsigned long length; + size_t length; }; static void mysql_real_query_start_internal(void *d) @@ -578,7 +578,7 @@ MK_ASYNC_CONT_BODY( struct mysql_send_query_params { MYSQL *mysql; const char *q; - unsigned long length; + size_t length; }; static void mysql_send_query_start_internal(void *d) @@ -1311,7 +1311,7 @@ MK_ASYNC_CONT_BODY( struct mysql_stmt_prepare_params { MYSQL_STMT *stmt; const char *query; - unsigned long length; + size_t length; }; static void mysql_stmt_prepare_start_internal(void *d) @@ -1614,7 +1614,7 @@ struct mysql_stmt_send_long_data_params { MYSQL_STMT *stmt; unsigned int param_number; const char *data; - unsigned long length; + size_t length; }; static void mysql_stmt_send_long_data_start_internal(void *d) diff --git a/libmariadb/secure/ma_schannel.c b/libmariadb/secure/ma_schannel.c index 065a9ab7..6266212f 100644 --- a/libmariadb/secure/ma_schannel.c +++ b/libmariadb/secure/ma_schannel.c @@ -338,7 +338,7 @@ my_bool ma_schannel_load_private_key(MARIADB_PVIO *pvio, CERT_CONTEXT *ctx, char goto end; } /* ... and import the private key */ - if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, NULL, 0, (HCRYPTKEY *)&crypt_key)) + if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, 0, 0, (HCRYPTKEY *)&crypt_key)) { ma_schannel_set_win_error(pvio); goto end; @@ -427,7 +427,7 @@ SECURITY_STATUS ma_schannel_handshake_loop(MARIADB_PVIO *pvio, my_bool InitialRe { if(fDoRead) { - cbData = pvio->methods->read(pvio, IoBuffer + cbIoBuffer, (size_t)(SC_IO_BUFFER_SIZE - cbIoBuffer)); + cbData = (DWORD)pvio->methods->read(pvio, IoBuffer + cbIoBuffer, (size_t)(SC_IO_BUFFER_SIZE - cbIoBuffer)); if (cbData == SOCKET_ERROR || cbData == 0) { rc = SEC_E_INTERNAL_ERROR; @@ -486,7 +486,7 @@ SECURITY_STATUS ma_schannel_handshake_loop(MARIADB_PVIO *pvio, my_bool InitialRe { if(OutBuffers[0].cbBuffer && OutBuffers[0].pvBuffer) { - cbData= pvio->methods->write(pvio, (uchar *)OutBuffers[0].pvBuffer, (size_t)OutBuffers[0].cbBuffer); + cbData= (DWORD)pvio->methods->write(pvio, (uchar *)OutBuffers[0].pvBuffer, (size_t)OutBuffers[0].cbBuffer); if(cbData == SOCKET_ERROR || cbData == 0) { FreeContextBuffer(OutBuffers[0].pvBuffer); @@ -637,7 +637,7 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_SSL *cssl) /* send client hello packaet */ if(BuffersOut[0].cbBuffer != 0 && BuffersOut[0].pvBuffer != NULL) { - r= pvio->methods->write(pvio, (uchar *)BuffersOut[0].pvBuffer, (size_t)BuffersOut[0].cbBuffer); + r= (DWORD)pvio->methods->write(pvio, (uchar *)BuffersOut[0].pvBuffer, (size_t)BuffersOut[0].cbBuffer); if (r <= 0) { sRet= SEC_E_INTERNAL_ERROR; @@ -697,7 +697,6 @@ SECURITY_STATUS ma_schannel_read_decrypt(MARIADB_PVIO *pvio, SECURITY_STATUS sRet= 0; SecBufferDesc Msg; SecBuffer Buffers[4], - ExtraBuffer, *pData, *pExtra; int i; @@ -711,18 +710,18 @@ SECURITY_STATUS ma_schannel_read_decrypt(MARIADB_PVIO *pvio, { if (!dwBytesRead || sRet == SEC_E_INCOMPLETE_MESSAGE) { - dwBytesRead= pvio->methods->read(pvio, sctx->IoBuffer + dwOffset, (size_t)(sctx->IoBufferSize - dwOffset)); + dwBytesRead= (DWORD)pvio->methods->read(pvio, sctx->IoBuffer + dwOffset, (size_t)(sctx->IoBufferSize - dwOffset)); if (dwBytesRead == 0) { /* server closed connection */ // todo: error - return NULL; + return SEC_E_INVALID_HANDLE; } if (dwBytesRead < 0) { /* socket error */ // todo: error - return NULL; + return SEC_E_INVALID_HANDLE; } dwOffset+= dwBytesRead; } @@ -863,7 +862,7 @@ size_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio, SECURITY_STATUS scRet; SecBufferDesc Message; SecBuffer Buffers[4]; - DWORD cbMessage, cbData; + DWORD cbMessage; PBYTE pbMessage; SC_CTX *sctx= (SC_CTX *)pvio->cssl->ssl; size_t payload; diff --git a/plugins/connection/aurora.c b/plugins/connection/aurora.c index 4c605058..3f54dd04 100644 --- a/plugins/connection/aurora.c +++ b/plugins/connection/aurora.c @@ -132,7 +132,10 @@ my_bool aurora_switch_connection(MYSQL *mysql, AURORA *aurora, int type) aurora->last_instance_type= AURORA_PRIMARY; } break; + default: + return 1; } + return 0; } /* }}} */ @@ -177,7 +180,7 @@ void aurora_close_memory(AURORA *aurora) my_bool aurora_parse_url(const char *url, AURORA *aurora) { char *p, *c; - int i; + unsigned int i; if (!url || url[0] == 0) return 1; @@ -313,7 +316,7 @@ my_bool aurora_get_primary_id(MYSQL *mysql, AURORA *aurora) */ static unsigned int aurora_get_valid_instances(AURORA *aurora, AURORA_INSTANCE **instances) { - int i, valid_instances= 0; + unsigned int i, valid_instances= 0; memset(instances, 0, sizeof(AURORA_INSTANCE *) * AURORA_MAX_INSTANCES); @@ -334,7 +337,7 @@ static unsigned int aurora_get_valid_instances(AURORA *aurora, AURORA_INSTANCE * /* {{{ void aurora_refresh_blacklist() */ void aurora_refresh_blacklist(AURORA *aurora) { - int i; + unsigned int i; for (i=0; i < aurora->num_instances; i++) { if (aurora->instance[i].blacklisted && @@ -475,7 +478,7 @@ my_bool aurora_find_replica(AURORA *aurora) /* {{{ AURORA_INSTANCE aurora_get_primary_id_instance() */ AURORA_INSTANCE *aurora_get_primary_id_instance(AURORA *aurora) { - int i; + unsigned int i; if (!aurora->primary_id[0]) return 0; @@ -492,7 +495,7 @@ AURORA_INSTANCE *aurora_get_primary_id_instance(AURORA *aurora) /* {{{ my_bool aurora_find_primary() */ my_bool aurora_find_primary(AURORA *aurora) { - int i; + unsigned int i; AURORA_INSTANCE *instance= NULL; MYSQL mysql; my_bool check_primary= 1; @@ -657,11 +660,11 @@ my_bool aurora_reconnect(MYSQL *mysql) switch (aurora->last_instance_type) { case AURORA_REPLICA: - if (!(rc= mysql->methods->reconnect(aurora->mysql[aurora->last_instance_type]))) + if (!(rc= mysql_reconnect(aurora->mysql[aurora->last_instance_type]))) aurora_switch_connection(mysql, aurora, AURORA_REPLICA); break; case AURORA_PRIMARY: - if (!(rc= mysql->methods->reconnect(aurora->mysql[aurora->last_instance_type]))) + if (!(rc= mysql_reconnect(aurora->mysql[aurora->last_instance_type]))) aurora_switch_connection(mysql, aurora, AURORA_PRIMARY); break; default: diff --git a/plugins/pvio/pvio_socket.c b/plugins/pvio/pvio_socket.c index 01df4775..809a6b97 100644 --- a/plugins/pvio/pvio_socket.c +++ b/plugins/pvio/pvio_socket.c @@ -948,7 +948,7 @@ my_bool pvio_socket_is_alive(MARIADB_PVIO *pvio) my_bool pvio_socket_has_data(MARIADB_PVIO *pvio, ssize_t *data_len) { struct st_pvio_socket *csock= NULL; - char tmp_buf[1024]; + char tmp_buf; ssize_t len; my_bool mode; diff --git a/unittest/libmariadb/CMakeLists.txt b/unittest/libmariadb/CMakeLists.txt index d7e3a5d6..6af35f39 100644 --- a/unittest/libmariadb/CMakeLists.txt +++ b/unittest/libmariadb/CMakeLists.txt @@ -32,17 +32,14 @@ IF(WITH_SSL) MESSAGE(STATUS "certificates already exist") ELSE() MESSAGE(STATUS "creating certificates") - EXECUTE_PROCESS(COMMAND openssl req -x509 -newkey rsa:1024 -keyout server-key-enc.pem -out server-cert.pem -subj "/DC=com/DC=example/CN=server" -passout pass:qwerty OUTPUT_FILE x.1 ERROR_FILE x.2 - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs) - EXECUTE_PROCESS(COMMAND openssl rsa -in server-key-enc.pem -out server-key.pem -passin pass:qwerty -passout pass: - OUTPUT_FILE x.1 ERROR_FILE x.2 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs) - EXECUTE_PROCESS(COMMAND openssl req -x509 -newkey rsa:1024 -keyout client-key-enc.pem -out client-cert.pem -subj "/DC=com/DC=example/CN=client" -passout pass:qwerty OUTPUT_FILE x.1 ERROR_FILE x.2 - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs) - EXECUTE_PROCESS(COMMAND openssl rsa -in client-key-enc.pem -out client-key.pem -passin pass:qwerty -passout pass: - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs OUTPUT_FILE x.1 ERROR_FILE x.2) - FILE(READ ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs/server-cert.pem F1) - FILE(READ ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs/client-cert.pem F2) - FILE(WRITE ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs/ca-cert.pem ${F1} ${F2}) + IF(WIN32) + EXECUTE_PROCESS(COMMAND create_certs.bat + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs + OUTPUT_FILE x.1 ERROR_FILE x.2) + ELSE() + EXECUTE_PROCESS(COMMAND ./create_certs.sh + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/libmariadb/certs) + ENDIF() ENDIF() EXECUTE_PROCESS(COMMAND openssl x509 -in server-cert.pem -sha1 -fingerprint -noout diff --git a/unittest/libmariadb/certs/create_certs.sh b/unittest/libmariadb/certs/create_certs.sh deleted file mode 100755 index 47ea98e8..00000000 --- a/unittest/libmariadb/certs/create_certs.sh +++ /dev/null @@ -1,15 +0,0 @@ -openssl req -x509 -newkey rsa:1024 \ --keyout server-key-enc.pem -out server-cert.pem \ --subj '/DC=com/DC=example/CN=server' -passout pass:qwerty - -openssl rsa -in server-key-enc.pem -out server-key.pem \ --passin pass:qwerty -passout pass: - -openssl req -x509 -newkey rsa:1024 \ --keyout client-key-enc.pem -out client-cert.pem \ --subj '/DC=com/DC=example/CN=client' -passout pass:qwerty - -openssl rsa -in client-key-enc.pem -out client-key.pem \ --passin pass:qwerty -passout pass: - -cat server-cert.pem client-cert.pem > ca-cert.pem diff --git a/unittest/libmariadb/cursor.c b/unittest/libmariadb/cursor.c index 97a75bc2..97bafd2e 100644 --- a/unittest/libmariadb/cursor.c +++ b/unittest/libmariadb/cursor.c @@ -59,12 +59,12 @@ MYSQL_STMT *open_cursor(MYSQL *mysql, const char *query) fetch buffers. */ -int stmt_fetch_init(MYSQL *mysql, Stmt_fetch *fetch, unsigned stmt_no_arg, +int stmt_fetch_init(MYSQL *mysql, Stmt_fetch *fetch, unsigned int stmt_no_arg, const char *query_arg) { unsigned long type= CURSOR_TYPE_READ_ONLY; int rc; - unsigned i; + unsigned int i; MYSQL_RES *metadata; /* Save query and statement number for error messages */ @@ -180,7 +180,7 @@ int fetch_n(MYSQL *mysql, const char **query_list, unsigned query_count, for (fetch= fetch_array; fetch < fetch_array + query_count; ++fetch) { - if (stmt_fetch_init(mysql, fetch, fetch - fetch_array, + if (stmt_fetch_init(mysql, fetch, (unsigned int)(fetch - fetch_array), query_list[fetch - fetch_array])) return FAIL; } @@ -322,7 +322,7 @@ static int test_bug21206(MYSQL *mysql) for (fetch= fetch_array; fetch < fetch_array + cursor_count; ++fetch) { - if ((retcode= stmt_fetch_init(mysql, fetch, fetch - fetch_array, query))) + if ((retcode= stmt_fetch_init(mysql, fetch, (unsigned int)(fetch - fetch_array), query))) break; } diff --git a/unittest/libmariadb/logs.c b/unittest/libmariadb/logs.c index 534feeb2..38dfd8a7 100644 --- a/unittest/libmariadb/logs.c +++ b/unittest/libmariadb/logs.c @@ -89,7 +89,7 @@ static int test_logs(MYSQL *mysql) my_bind[1].buffer_type= MYSQL_TYPE_STRING; my_bind[1].buffer= (void *)&data; my_bind[1].buffer_length= 255; - my_bind[1].length= &length; + my_bind[1].length= (unsigned long *)&length; id= 9876; strcpy((char *)data, "MySQL - Open Source Database"); diff --git a/unittest/libmariadb/ps.c b/unittest/libmariadb/ps.c index 85e5528c..add7a493 100644 --- a/unittest/libmariadb/ps.c +++ b/unittest/libmariadb/ps.c @@ -1386,7 +1386,7 @@ static int test_long_data_str1(MYSQL *mysql) my_bind[0].buffer= data; /* string data */ my_bind[0].buffer_length= sizeof(data); - my_bind[0].length= &length1; + my_bind[0].length= (unsigned long *)&length1; my_bind[0].buffer_type= MYSQL_TYPE_STRING; length1= 0; @@ -1485,7 +1485,7 @@ static int test_long_data_str1(MYSQL *mysql) my_bind[0].buffer_type= MYSQL_TYPE_BLOB; my_bind[0].buffer= (void *) &data; /* this buffer won't be altered */ my_bind[0].buffer_length= 16; - my_bind[0].length= &blob_length; + my_bind[0].length= (unsigned long *)&blob_length; my_bind[0].error= &my_bind[0].error_value; rc= mysql_stmt_bind_result(stmt, my_bind); data[16]= 0; @@ -1501,7 +1501,7 @@ static int test_long_data_str1(MYSQL *mysql) my_bind[1].buffer_type= MYSQL_TYPE_BLOB; my_bind[1].buffer= (void *) &data; /* this buffer won't be altered */ my_bind[1].buffer_length= sizeof(data); - my_bind[1].length= &blob_length; + my_bind[1].length= (unsigned long *)&blob_length; memset(data, '\0', sizeof(data)); mysql_stmt_fetch_column(stmt, my_bind+1, 0, 0); FAIL_UNLESS(strlen(data) == max_blob_length, "strlen(data) != max_blob_length"); diff --git a/unittest/libmariadb/ps_bugs.c b/unittest/libmariadb/ps_bugs.c index b7d54d26..e5204ea4 100644 --- a/unittest/libmariadb/ps_bugs.c +++ b/unittest/libmariadb/ps_bugs.c @@ -643,7 +643,7 @@ static int test_bug1500(MYSQL *mysql) data= "Grave"; my_bind[0].buffer_type= MYSQL_TYPE_STRING; my_bind[0].buffer= (void *) data; - my_bind[0].buffer_length= strlen(data); + my_bind[0].buffer_length= (unsigned long)strlen(data); rc= mysql_stmt_bind_param(stmt, my_bind); check_stmt_rc(rc, stmt); @@ -2651,7 +2651,7 @@ static int test_bug5194(MYSQL *mysql) for (i= 1; i < COLUMN_COUNT; ++i) strcat(param_str, "?, "); strcat(param_str, "?)"); - param_str_length= strlen(param_str); + param_str_length= (int)strlen(param_str); /* setup bind array */ memset(my_bind, '\0', MAX_PARAM_COUNT * sizeof(MYSQL_BIND)); @@ -3229,7 +3229,7 @@ static int test_mem_overun(MYSQL *mysql) sprintf(field, "c%d int, ", i); strcat(buffer, field); } - length= strlen(buffer); + length= (int)strlen(buffer); buffer[length-2]= ')'; buffer[--length]= '\0'; @@ -3241,7 +3241,7 @@ static int test_mem_overun(MYSQL *mysql) { strcat(buffer, "1, "); } - length= strlen(buffer); + length= (int)strlen(buffer); buffer[length-2]= ')'; buffer[--length]= '\0'; diff --git a/unittest/libmariadb/ssl.c.in b/unittest/libmariadb/ssl.c.in index c38408fb..3ac318dd 100644 --- a/unittest/libmariadb/ssl.c.in +++ b/unittest/libmariadb/ssl.c.in @@ -53,10 +53,12 @@ static int check_cipher(MYSQL *mysql) return 1; #ifdef HAVE_GNUTLS return strcmp(cipher, "AES-128-GCM"); -#endif -#ifdef HAVE_OPENSSL +#elif HAVE_OPENSSL return strcmp(cipher, "DHE-RSA-AES256-SHA"); +#elif HAVE_SCHANNEL + return strcmp(cipher, "CALG_AES_256"); #endif + return 1; } static int create_ssl_user(const char *ssluser, my_bool is_X509) @@ -268,6 +270,7 @@ DWORD WINAPI ssl_thread(void *dummy) mysql_close(mysql); mysql_thread_end(); pthread_exit(0); + return; } static int test_ssl_threads(MYSQL *mysql) @@ -291,6 +294,7 @@ static int test_ssl_threads(MYSQL *mysql) check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "INSERT into ssltest VALUES (0)"); check_mysql_rc(rc, mysql); + pthread_mutex_init(&LOCK_test, NULL); pthread_mutex_init(&LOCK_test, NULL); @@ -640,6 +644,9 @@ static int test_conc_102(MYSQL *mysql) DWORD threads[50]; #endif + if (check_skip_ssl()) + return SKIP; + rc= mysql_query(mysql, "DROP TABLE IF EXISTS t_conc102"); check_mysql_rc(rc, mysql); rc= mysql_query(mysql, "CREATE TABLE t_conc102 ( a int)"); @@ -701,10 +708,10 @@ static int test_ssl_fp(MYSQL *unused) FAIL_IF(check_cipher(my) != 0, "Invalid cipher"); - mysql_query(my, "SET @a:=1"); + rc= mysql_query(my, "SET @a:=1"); check_mysql_rc(rc, my); - mysql_query(my, "SELECT @a"); + rc= mysql_query(my, "SELECT @a"); check_mysql_rc(rc, my); if ((res= mysql_store_result(my))) diff --git a/win-iconv/win_iconv.c b/win-iconv/win_iconv.c index 6699c022..d1740fe1 100644 --- a/win-iconv/win_iconv.c +++ b/win-iconv/win_iconv.c @@ -789,7 +789,7 @@ win_iconv(iconv_t _cd, const char **inbuf, size_t *inbytesleft, char **outbuf, s if (outbuf != NULL && *outbuf != NULL && cd->to.flush != NULL) { tomode = cd->to.mode; - outsize = cd->to.flush(&cd->to, (uchar *)*outbuf, *outbytesleft); + outsize = cd->to.flush(&cd->to, (uchar *)*outbuf, (int)*outbytesleft); if (outsize == -1) { if ((cd->to.flags & FLAG_IGNORE) && errno != E2BIG) @@ -816,7 +816,7 @@ win_iconv(iconv_t _cd, const char **inbuf, size_t *inbytesleft, char **outbuf, s tomode = cd->to.mode; wsize = MB_CHAR_MAX; - insize = cd->from.mbtowc(&cd->from, (const uchar *)*inbuf, *inbytesleft, wbuf, &wsize); + insize = cd->from.mbtowc(&cd->from, (const uchar *)*inbuf, (int)*inbytesleft, wbuf, &wsize); if (insize == -1) { if (cd->to.flags & FLAG_IGNORE) @@ -867,7 +867,7 @@ win_iconv(iconv_t _cd, const char **inbuf, size_t *inbytesleft, char **outbuf, s } } - outsize = cd->to.wctomb(&cd->to, wbuf, wsize, (uchar *)*outbuf, *outbytesleft); + outsize = cd->to.wctomb(&cd->to, wbuf, wsize, (uchar *)*outbuf, (int)*outbytesleft); if (outsize == -1) { if ((cd->to.flags & FLAG_IGNORE) && errno != E2BIG)