1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-07 02:42:49 +03:00

Windows 64-bit fixes:

changed type of length parameter in mysql_stmt_prepare,
mysql_real_query, mysql_stmt_send_long_data (incl. async _start
functions) from unsigned long to size_t.
Fixed warnings
This commit is contained in:
Georg Richter
2015-11-05 11:52:50 +01:00
parent 2f4061eadc
commit 72f7c4abf5
26 changed files with 87 additions and 89 deletions

View File

@@ -131,7 +131,7 @@ typedef struct st_mysql_error_info
struct st_mysqlnd_stmt_methods struct st_mysqlnd_stmt_methods
{ {
my_bool (*prepare)(const MYSQL_STMT * stmt, const char * const query, unsigned int query_len); my_bool (*prepare)(const MYSQL_STMT * stmt, const char * const query, size_t query_len);
my_bool (*execute)(const MYSQL_STMT * stmt); my_bool (*execute)(const MYSQL_STMT * stmt);
MYSQL_RES * (*use_result)(const MYSQL_STMT * stmt); MYSQL_RES * (*use_result)(const MYSQL_STMT * stmt);
MYSQL_RES * (*store_result)(const MYSQL_STMT * stmt); MYSQL_RES * (*store_result)(const MYSQL_STMT * stmt);
@@ -148,7 +148,7 @@ struct st_mysqlnd_stmt_methods
my_bool (*refresh_bind_param)(const MYSQL_STMT * stmt); my_bool (*refresh_bind_param)(const MYSQL_STMT * stmt);
my_bool (*bind_result)(const MYSQL_STMT * stmt, const MYSQL_BIND *bind); my_bool (*bind_result)(const MYSQL_STMT * stmt, const MYSQL_BIND *bind);
my_bool (*send_long_data)(const MYSQL_STMT * stmt, unsigned int param_num, my_bool (*send_long_data)(const MYSQL_STMT * stmt, unsigned int param_num,
const char * const data, unsigned long length); const char * const data, size_t length);
MYSQL_RES *(*get_parameter_metadata)(const MYSQL_STMT * stmt); MYSQL_RES *(*get_parameter_metadata)(const MYSQL_STMT * stmt);
MYSQL_RES *(*get_result_metadata)(const MYSQL_STMT * stmt); MYSQL_RES *(*get_result_metadata)(const MYSQL_STMT * stmt);
my_ulonglong (*get_last_insert_id)(const MYSQL_STMT * stmt); my_ulonglong (*get_last_insert_id)(const MYSQL_STMT * stmt);
@@ -224,7 +224,7 @@ int simple_command(MYSQL *mysql,enum enum_server_command command, const char *ar
* function prototypes * function prototypes
*/ */
MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql);
int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, unsigned long length); int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, size_t length);
int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt);
int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt);
int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg, unsigned int column, unsigned long offset); int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg, unsigned int column, unsigned long offset);
@@ -237,7 +237,7 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd);
my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt);
my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt);
my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt);
my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, unsigned int param_number, const char *data, unsigned long length); my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, unsigned int param_number, const char *data, size_t length);
MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt);
MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt);
unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt);

View File

@@ -425,10 +425,10 @@ void STDCALL mysql_close(MYSQL *sock);
int STDCALL mysql_select_db(MYSQL *mysql, const char *db); int STDCALL mysql_select_db(MYSQL *mysql, const char *db);
int STDCALL mysql_query(MYSQL *mysql, const char *q); int STDCALL mysql_query(MYSQL *mysql, const char *q);
int STDCALL mysql_send_query(MYSQL *mysql, const char *q, int STDCALL mysql_send_query(MYSQL *mysql, const char *q,
unsigned long length); size_t length);
my_bool STDCALL mysql_read_query_result(MYSQL *mysql); my_bool STDCALL mysql_read_query_result(MYSQL *mysql);
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
unsigned long length); size_t length);
int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);
int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
int STDCALL mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level); int STDCALL mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level);
@@ -488,7 +488,7 @@ size_t STDCALL mariadb_convert_string(const char *from, size_t *from_len, CHARSE
char *to, size_t *to_len, CHARSET_INFO *to_cs, int *errorcode); char *to, size_t *to_len, CHARSET_INFO *to_cs, int *errorcode);
int STDCALL mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...); int STDCALL mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...);
MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void); MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void);
unsigned long STDCALL mysql_hex_string(char *to, const char *from, unsigned long len); unsigned long STDCALL mysql_hex_string(char *to, const char *from, size_t len);
my_socket STDCALL mysql_get_socket(const MYSQL *mysql); my_socket STDCALL mysql_get_socket(const MYSQL *mysql);
unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql); unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql);
unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql); unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql);
@@ -542,7 +542,7 @@ int STDCALL mysql_send_query_start(int *ret, MYSQL *mysql,
int STDCALL mysql_send_query_cont(int *ret, MYSQL *mysql, int status); int STDCALL mysql_send_query_cont(int *ret, MYSQL *mysql, int status);
int STDCALL mysql_real_query_start(int *ret, MYSQL *mysql, int STDCALL mysql_real_query_start(int *ret, MYSQL *mysql,
const char *q, const char *q,
unsigned long length); size_t length);
int STDCALL mysql_real_query_cont(int *ret, MYSQL *mysql, int STDCALL mysql_real_query_cont(int *ret, MYSQL *mysql,
int status); int status);
int STDCALL mysql_store_result_start(MYSQL_RES **ret, MYSQL *mysql); int STDCALL mysql_store_result_start(MYSQL_RES **ret, MYSQL *mysql);
@@ -580,7 +580,7 @@ int STDCALL mysql_read_query_result_start(my_bool *ret,
MYSQL *mysql); MYSQL *mysql);
int STDCALL mysql_read_query_result_cont(my_bool *ret, int STDCALL mysql_read_query_result_cont(my_bool *ret,
MYSQL *mysql, int status); MYSQL *mysql, int status);
int STDCALL mysql_stmt_prepare_start(int *ret, MYSQL_STMT *stmt,const char *query, unsigned long length); int STDCALL mysql_stmt_prepare_start(int *ret, MYSQL_STMT *stmt,const char *query, size_t length);
int STDCALL mysql_stmt_prepare_cont(int *ret, MYSQL_STMT *stmt, int status); int STDCALL mysql_stmt_prepare_cont(int *ret, MYSQL_STMT *stmt, int status);
int STDCALL mysql_stmt_execute_start(int *ret, MYSQL_STMT *stmt); int STDCALL mysql_stmt_execute_start(int *ret, MYSQL_STMT *stmt);
int STDCALL mysql_stmt_execute_cont(int *ret, MYSQL_STMT *stmt, int status); int STDCALL mysql_stmt_execute_cont(int *ret, MYSQL_STMT *stmt, int status);
@@ -599,7 +599,7 @@ int STDCALL mysql_stmt_free_result_cont(my_bool *ret, MYSQL_STMT *stmt,
int STDCALL mysql_stmt_send_long_data_start(my_bool *ret, MYSQL_STMT *stmt, int STDCALL mysql_stmt_send_long_data_start(my_bool *ret, MYSQL_STMT *stmt,
unsigned int param_number, unsigned int param_number,
const char *data, const char *data,
unsigned long len); size_t len);
int STDCALL mysql_stmt_send_long_data_cont(my_bool *ret, MYSQL_STMT *stmt, int STDCALL mysql_stmt_send_long_data_cont(my_bool *ret, MYSQL_STMT *stmt,
int status); int status);

View File

@@ -2004,7 +2004,7 @@ mysql_query(MYSQL *mysql, const char *query)
*/ */
int STDCALL int STDCALL
mysql_send_query(MYSQL* mysql, const char* query, unsigned long length) mysql_send_query(MYSQL* mysql, const char* query, size_t length)
{ {
return simple_command(mysql, COM_QUERY, query, length, 1,0); return simple_command(mysql, COM_QUERY, query, length, 1,0);
} }
@@ -2065,7 +2065,7 @@ mysql_read_query_result(MYSQL *mysql)
} }
int STDCALL int STDCALL
mysql_real_query(MYSQL *mysql, const char *query, unsigned long length) mysql_real_query(MYSQL *mysql, const char *query, size_t length)
{ {
DBUG_ENTER("mysql_real_query"); DBUG_ENTER("mysql_real_query");
DBUG_PRINT("enter",("handle: %lx",mysql)); DBUG_PRINT("enter",("handle: %lx",mysql));
@@ -3206,8 +3206,7 @@ ulong STDCALL mysql_get_client_version(void)
return MYSQL_VERSION_ID; return MYSQL_VERSION_ID;
} }
ulong STDCALL mysql_hex_string(char *to, const char *from, ulong STDCALL mysql_hex_string(char *to, const char *from, size_t len)
unsigned long len)
{ {
char *start= to; char *start= to;
char hexdigits[]= "0123456789ABCDEF"; char hexdigits[]= "0123456789ABCDEF";

View File

@@ -87,7 +87,7 @@ MA_FILE *ma_open(const char *location, const char *mode, MYSQL *mysql)
my_free(w_filename); my_free(w_filename);
return NULL; return NULL;
} }
len= strlen(mode); len= (int)strlen(mode);
if (!(w_mode= (wchar_t *)my_malloc((len + 1) * sizeof(wchar_t), MYF(MY_ZEROFILL)))) if (!(w_mode= (wchar_t *)my_malloc((len + 1) * sizeof(wchar_t), MYF(MY_ZEROFILL))))
{ {
my_set_error(mysql, CR_OUT_OF_MEMORY, SQLSTATE_UNKNOWN, 0); my_set_error(mysql, CR_OUT_OF_MEMORY, SQLSTATE_UNKNOWN, 0);
@@ -213,7 +213,7 @@ char *ma_gets(char *ptr, size_t size, MA_FILE *file)
switch (file->type) { switch (file->type) {
case MA_FILE_LOCAL: case MA_FILE_LOCAL:
return fgets(ptr, size, (FILE *)file->ptr); return fgets(ptr, (int)size, (FILE *)file->ptr);
break; break;
#ifdef HAVE_REMOTEIO #ifdef HAVE_REMOTEIO
case MA_FILE_REMOTE: case MA_FILE_REMOTE:

View File

@@ -128,7 +128,7 @@ my_bool ma_pvio_ssl_check_fp(MARIADB_SSL *cssl, const char *fp, const char *fp_l
if ((cert_fp_len= ma_ssl_get_finger_print(cssl, cert_fp, cert_fp_len)) < 1) if ((cert_fp_len= ma_ssl_get_finger_print(cssl, cert_fp, cert_fp_len)) < 1)
goto end; goto end;
if (fp) if (fp)
rc= ma_pvio_ssl_compare_fp(cert_fp, cert_fp_len, (char *)fp, strlen(fp)); rc= ma_pvio_ssl_compare_fp(cert_fp, cert_fp_len, (char *)fp, (unsigned int)strlen(fp));
else if (fp_list) else if (fp_list)
{ {
FILE *fp; FILE *fp;
@@ -153,7 +153,7 @@ my_bool ma_pvio_ssl_check_fp(MARIADB_SSL *cssl, const char *fp, const char *fp_l
if (pos) if (pos)
*pos= '\0'; *pos= '\0';
if (!ma_pvio_ssl_compare_fp(cert_fp, cert_fp_len, buff, strlen(buff))) if (!ma_pvio_ssl_compare_fp(cert_fp, cert_fp_len, buff, (unsigned int)strlen(buff)))
{ {
/* finger print is valid: close file and exit */ /* finger print is valid: close file and exit */
fclose(fp); fclose(fp);

View File

@@ -1135,19 +1135,19 @@ static void map_charset_name(const char *cs_name, my_bool target_cs, char *buffe
if (sscanf(cs_name, "UTF%2[0-9]%2[LBE]", digits, endianness)) if (sscanf(cs_name, "UTF%2[0-9]%2[LBE]", digits, endianness))
{ {
/* We should have at least digits. Endianness we write either default(BE), or what we found in the string */ /* We should have at least digits. Endianness we write either default(BE), or what we found in the string */
ptr= strnmov(ptr, "UTF-", buff_len); ptr= strnmov(ptr, "UTF-", (uint)buff_len);
ptr= strnmov(ptr, digits, buff_len - (ptr - buffer)); ptr= strnmov(ptr, digits, (uint)(buff_len - (ptr - buffer)));
ptr= strnmov(ptr, endianness, buff_len - (ptr - buffer)); ptr= strnmov(ptr, endianness, (uint)(buff_len - (ptr - buffer)));
} }
else else
{ {
/* Not our client - copy as is*/ /* Not our client - copy as is*/
ptr= strnmov(ptr, cs_name, buff_len); ptr= strnmov(ptr, cs_name, (uint)buff_len);
} }
if (target_cs) if (target_cs)
{ {
strnmov(ptr, "//TRANSLIT", buff_len - (ptr - buffer)); strnmov(ptr, "//TRANSLIT", (uint)(buff_len - (ptr - buffer)));
} }
} }
/* }}} */ /* }}} */

View File

@@ -63,7 +63,7 @@ unsigned char *my_compress_alloc(const unsigned char *packet, size_t *len, size_
my_free(compbuf); my_free(compbuf);
return 0; return 0;
} }
swap(ulong,*len,*complen); /* *len is now packet length */ swap(size_t,*len,*complen); /* *len is now packet length */
return compbuf; return compbuf;
} }

View File

@@ -117,7 +117,7 @@ int mysql_local_infile_read(void *ptr, char * buf, unsigned int buf_len)
strcpy(info->error_msg, "Error reading file"); strcpy(info->error_msg, "Error reading file");
info->error_no = EE_READ; info->error_no = EE_READ;
} }
DBUG_RETURN(count); DBUG_RETURN((int)count);
} }
/* }}} */ /* }}} */

View File

@@ -1221,7 +1221,7 @@ my_bool mthd_stmt_get_result_metadata(MYSQL_STMT *stmt)
DBUG_RETURN(0); DBUG_RETURN(0);
} }
int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, unsigned long length) int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, size_t length)
{ {
MYSQL *mysql= stmt->mysql; MYSQL *mysql= stmt->mysql;
int rc= 1; int rc= 1;
@@ -1792,7 +1792,7 @@ MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET
} }
my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number, my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number,
const char *data, ulong length) const char *data, size_t length)
{ {
DBUG_ENTER("mysql_stmt_send_long_data"); DBUG_ENTER("mysql_stmt_send_long_data");

View File

@@ -496,7 +496,7 @@ MK_ASYNC_INTERNAL_BODY(
r_int) r_int)
} }
int STDCALL int STDCALL
mysql_real_query_start(int *ret, MYSQL *mysql, const char *stmt_str, unsigned long length) mysql_real_query_start(int *ret, MYSQL *mysql, const char *stmt_str, size_t length)
{ {
int res; int res;
struct mysql_async_context *b; struct mysql_async_context *b;
@@ -1414,7 +1414,7 @@ MK_ASYNC_INTERNAL_BODY(
} }
int STDCALL int STDCALL
mysql_stmt_prepare_start(int *ret, MYSQL_STMT *stmt, const char *query, mysql_stmt_prepare_start(int *ret, MYSQL_STMT *stmt, const char *query,
unsigned long length) size_t length)
{ {
MK_ASYNC_START_BODY( MK_ASYNC_START_BODY(
mysql_stmt_prepare, mysql_stmt_prepare,
@@ -1718,7 +1718,7 @@ MK_ASYNC_INTERNAL_BODY(
int STDCALL int STDCALL
mysql_stmt_send_long_data_start(my_bool *ret, MYSQL_STMT *stmt, mysql_stmt_send_long_data_start(my_bool *ret, MYSQL_STMT *stmt,
unsigned int param_number, unsigned int param_number,
const char *data, unsigned long length) const char *data, size_t length)
{ {
MK_ASYNC_START_BODY( MK_ASYNC_START_BODY(
mysql_stmt_send_long_data, mysql_stmt_send_long_data,

View File

@@ -175,7 +175,7 @@ static my_bool net_realloc(NET *net, size_t length)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
net->buff=net->write_pos=buff; net->buff=net->write_pos=buff;
net->buff_end=buff+(net->max_packet=pkt_length); net->buff_end=buff+(net->max_packet=(unsigned long)pkt_length);
DBUG_RETURN(0); DBUG_RETURN(0);
} }
@@ -211,7 +211,7 @@ static my_bool net_check_socket_status(my_socket sock)
FD_ZERO(&sfds); FD_ZERO(&sfds);
FD_SET(sock, &sfds); FD_SET(sock, &sfds);
res= select(sock + 1, &sfds, NULL, NULL, &tv); res= select((int)sock + 1, &sfds, NULL, NULL, &tv);
if (res > 0 && FD_ISSET(sock, &sfds)) if (res > 0 && FD_ISSET(sock, &sfds))
return TRUE; return TRUE;
return FALSE; return FALSE;
@@ -659,7 +659,7 @@ ulong my_net_read(NET *net)
start= 0; start= 0;
} }
net->where_b=buffer_length; net->where_b=(unsigned long)buffer_length;
if ((packet_length = my_real_read(net,(size_t *)&complen)) == packet_error) if ((packet_length = my_real_read(net,(size_t *)&complen)) == packet_error)
return packet_error; return packet_error;
@@ -674,8 +674,8 @@ ulong my_net_read(NET *net)
buffer_length+= complen; buffer_length+= complen;
} }
/* set values */ /* set values */
net->buf_length= buffer_length; net->buf_length= (unsigned long)buffer_length;
net->remain_in_buf= buffer_length - current; net->remain_in_buf= (unsigned long)(buffer_length - current);
net->read_pos= net->buff + start + 4; net->read_pos= net->buff + start + 4;
len= current - start - 4; len= current - start - 4;
if (is_multi_packet) if (is_multi_packet)

View File

@@ -70,7 +70,6 @@ void ma_schannel_set_sec_error(MARIADB_PVIO *pvio, DWORD ErrorNo)
void ma_schannel_set_win_error(MARIADB_PVIO *pvio) void ma_schannel_set_win_error(MARIADB_PVIO *pvio)
{ {
ulong ssl_errno= GetLastError(); ulong ssl_errno= GetLastError();
char ssl_error[MAX_SSL_ERR_LEN];
char *ssl_error_reason= NULL; char *ssl_error_reason= NULL;
if (!ssl_errno) if (!ssl_errno)
@@ -118,7 +117,6 @@ static LPBYTE ma_schannel_load_pem(MARIADB_PVIO *pvio, const char *PemFileName,
DWORD dwBytesRead= 0; DWORD dwBytesRead= 0;
LPBYTE der_buffer= NULL; LPBYTE der_buffer= NULL;
DWORD der_buffer_length; DWORD der_buffer_length;
DWORD x;
if (buffer_len == NULL) if (buffer_len == NULL)
return NULL; return NULL;
@@ -218,7 +216,7 @@ CERT_CONTEXT *ma_schannel_create_cert_context(MARIADB_PVIO *pvio, const char *pe
/* create DER binary object from ca/certification file */ /* create DER binary object from ca/certification file */
if (!(der_buffer= ma_schannel_load_pem(pvio, pem_file, (DWORD *)&der_buffer_length))) if (!(der_buffer= ma_schannel_load_pem(pvio, pem_file, (DWORD *)&der_buffer_length)))
goto end; goto end;
if (!(ctx= CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, if (!(ctx= (CERT_CONTEXT *)CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
der_buffer, der_buffer_length))) der_buffer, der_buffer_length)))
ma_schannel_set_win_error(pvio); ma_schannel_set_win_error(pvio);
@@ -293,8 +291,8 @@ my_bool ma_schannel_load_private_key(MARIADB_PVIO *pvio, CERT_CONTEXT *ctx, char
LPBYTE der_buffer= NULL; LPBYTE der_buffer= NULL;
DWORD priv_key_len= 0; DWORD priv_key_len= 0;
LPBYTE priv_key= NULL; LPBYTE priv_key= NULL;
HCRYPTPROV crypt_prov= NULL; HCRYPTPROV crypt_prov= 0;
HCRYPTKEY crypt_key= NULL; HCRYPTKEY crypt_key= 0;
CERT_KEY_CONTEXT kpi; CERT_KEY_CONTEXT kpi;
my_bool rc= 0; my_bool rc= 0;
@@ -340,7 +338,7 @@ my_bool ma_schannel_load_private_key(MARIADB_PVIO *pvio, CERT_CONTEXT *ctx, char
goto end; goto end;
} }
/* ... and import the private key */ /* ... and import the private key */
if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, NULL, 0, &crypt_key)) if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, NULL, 0, (HCRYPTKEY *)&crypt_key))
{ {
ma_schannel_set_win_error(pvio); ma_schannel_set_win_error(pvio);
goto end; goto end;
@@ -429,7 +427,7 @@ SECURITY_STATUS ma_schannel_handshake_loop(MARIADB_PVIO *pvio, my_bool InitialRe
{ {
if(fDoRead) if(fDoRead)
{ {
cbData = pvio->methods->read(pvio, IoBuffer + cbIoBuffer, SC_IO_BUFFER_SIZE - cbIoBuffer, 0); cbData = pvio->methods->read(pvio, IoBuffer + cbIoBuffer, (size_t)(SC_IO_BUFFER_SIZE - cbIoBuffer));
if (cbData == SOCKET_ERROR || cbData == 0) if (cbData == SOCKET_ERROR || cbData == 0)
{ {
rc = SEC_E_INTERNAL_ERROR; rc = SEC_E_INTERNAL_ERROR;
@@ -488,7 +486,7 @@ SECURITY_STATUS ma_schannel_handshake_loop(MARIADB_PVIO *pvio, my_bool InitialRe
{ {
if(OutBuffers[0].cbBuffer && OutBuffers[0].pvBuffer) if(OutBuffers[0].cbBuffer && OutBuffers[0].pvBuffer)
{ {
cbData= pvio->methods->write(pvio, (uchar *)OutBuffers[0].pvBuffer, OutBuffers[0].cbBuffer); cbData= pvio->methods->write(pvio, (uchar *)OutBuffers[0].pvBuffer, (size_t)OutBuffers[0].cbBuffer);
if(cbData == SOCKET_ERROR || cbData == 0) if(cbData == SOCKET_ERROR || cbData == 0)
{ {
FreeContextBuffer(OutBuffers[0].pvBuffer); FreeContextBuffer(OutBuffers[0].pvBuffer);
@@ -590,8 +588,8 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_SSL *cssl)
ISC_REQ_USE_SUPPLIED_CREDS | ISC_REQ_USE_SUPPLIED_CREDS |
ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM; ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM;
SecBufferDesc BufferIn, BufferOut; SecBufferDesc BufferOut;
SecBuffer BuffersOut[1], BuffersIn[2]; SecBuffer BuffersOut[1];
if (!cssl || !cssl->pvio) if (!cssl || !cssl->pvio)
return 1; return 1;
@@ -639,7 +637,7 @@ SECURITY_STATUS ma_schannel_client_handshake(MARIADB_SSL *cssl)
/* send client hello packaet */ /* send client hello packaet */
if(BuffersOut[0].cbBuffer != 0 && BuffersOut[0].pvBuffer != NULL) if(BuffersOut[0].cbBuffer != 0 && BuffersOut[0].pvBuffer != NULL)
{ {
r= pvio->methods->write(pvio, (uchar *)BuffersOut[0].pvBuffer, BuffersOut[0].cbBuffer); r= pvio->methods->write(pvio, (uchar *)BuffersOut[0].pvBuffer, (size_t)BuffersOut[0].cbBuffer);
if (r <= 0) if (r <= 0)
{ {
sRet= SEC_E_INTERNAL_ERROR; sRet= SEC_E_INTERNAL_ERROR;
@@ -713,7 +711,7 @@ SECURITY_STATUS ma_schannel_read_decrypt(MARIADB_PVIO *pvio,
{ {
if (!dwBytesRead || sRet == SEC_E_INCOMPLETE_MESSAGE) if (!dwBytesRead || sRet == SEC_E_INCOMPLETE_MESSAGE)
{ {
dwBytesRead= pvio->methods->read(pvio, sctx->IoBuffer + dwOffset, sctx->IoBufferSize - dwOffset); dwBytesRead= pvio->methods->read(pvio, sctx->IoBuffer + dwOffset, (size_t)(sctx->IoBufferSize - dwOffset));
if (dwBytesRead == 0) if (dwBytesRead == 0)
{ {
/* server closed connection */ /* server closed connection */
@@ -870,19 +868,18 @@ size_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
SC_CTX *sctx= (SC_CTX *)pvio->cssl->ssl; SC_CTX *sctx= (SC_CTX *)pvio->cssl->ssl;
size_t payload; size_t payload;
payload= MIN(WriteBufferSize, sctx->IoBufferSize); payload= MIN(WriteBufferSize, sctx->IoBufferSize);
memcpy(&sctx->IoBuffer[sctx->Sizes.cbHeader], WriteBuffer, payload); memcpy(&sctx->IoBuffer[sctx->Sizes.cbHeader], WriteBuffer, payload);
pbMessage = sctx->IoBuffer + sctx->Sizes.cbHeader; pbMessage = sctx->IoBuffer + sctx->Sizes.cbHeader;
cbMessage = payload; cbMessage = (DWORD)payload;
Buffers[0].pvBuffer = sctx->IoBuffer; Buffers[0].pvBuffer = sctx->IoBuffer;
Buffers[0].cbBuffer = sctx->Sizes.cbHeader; Buffers[0].cbBuffer = sctx->Sizes.cbHeader;
Buffers[0].BufferType = SECBUFFER_STREAM_HEADER; // Type of the buffer Buffers[0].BufferType = SECBUFFER_STREAM_HEADER; // Type of the buffer
Buffers[1].pvBuffer = &sctx->IoBuffer[sctx->Sizes.cbHeader]; Buffers[1].pvBuffer = &sctx->IoBuffer[sctx->Sizes.cbHeader];
Buffers[1].cbBuffer = payload; Buffers[1].cbBuffer = (DWORD)payload;
Buffers[1].BufferType = SECBUFFER_DATA; Buffers[1].BufferType = SECBUFFER_DATA;
Buffers[2].pvBuffer = &sctx->IoBuffer[sctx->Sizes.cbHeader] + payload; Buffers[2].pvBuffer = &sctx->IoBuffer[sctx->Sizes.cbHeader] + payload;
@@ -902,6 +899,7 @@ size_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
if (pvio->methods->write(pvio, sctx->IoBuffer, Buffers[0].cbBuffer + Buffers[1].cbBuffer + Buffers[2].cbBuffer)) if (pvio->methods->write(pvio, sctx->IoBuffer, Buffers[0].cbBuffer + Buffers[1].cbBuffer + Buffers[2].cbBuffer))
return payload; return payload;
return 0;
} }
/* }}} */ /* }}} */

View File

@@ -86,7 +86,7 @@ my_bool ma_schannel_verify_certs(SC_CTX *sctx, DWORD dwCertFlags);
size_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio, size_t ma_schannel_write_encrypt(MARIADB_PVIO *pvio,
uchar *WriteBuffer, uchar *WriteBuffer,
size_t WriteBufferSize); size_t WriteBufferSize);
size_t ma_schannel_read_decrypt(MARIADB_PVIO *pvio, SECURITY_STATUS ma_schannel_read_decrypt(MARIADB_PVIO *pvio,
PCredHandle phCreds, PCredHandle phCreds,
CtxtHandle * phContext, CtxtHandle * phContext,
DWORD *DecryptLength, DWORD *DecryptLength,

View File

@@ -22,7 +22,7 @@
#pragma comment (lib, "crypt32.lib") #pragma comment (lib, "crypt32.lib")
#pragma comment (lib, "secur32.lib") #pragma comment (lib, "secur32.lib")
#define VOID void //#define VOID void
extern my_bool ma_ssl_initialized; extern my_bool ma_ssl_initialized;
@@ -107,7 +107,7 @@ static int ssl_thread_init()
0 success 0 success
1 error 1 error
*/ */
int ma_ssl_start(char *errmsg, size_t errmsg_len, int count, va_list list) int ma_ssl_start(char *errmsg, size_t errmsg_len)
{ {
if (!ma_ssl_initialized) if (!ma_ssl_initialized)
{ {
@@ -158,7 +158,6 @@ static int ma_ssl_set_client_certs(MARIADB_SSL *cssl)
if (cafile) if (cafile)
{ {
HCERTSTORE myCS= NULL; HCERTSTORE myCS= NULL;
char szName[64];
if (!(sctx->client_ca_ctx = ma_schannel_create_cert_context(pvio, cafile))) if (!(sctx->client_ca_ctx = ma_schannel_create_cert_context(pvio, cafile)))
goto end; goto end;
@@ -216,7 +215,6 @@ end:
/* {{{ void *ma_ssl_init(MARIADB_SSL *cssl, MYSQL *mysql) */ /* {{{ void *ma_ssl_init(MARIADB_SSL *cssl, MYSQL *mysql) */
void *ma_ssl_init(MYSQL *mysql) void *ma_ssl_init(MYSQL *mysql)
{ {
int verify;
SC_CTX *sctx= NULL; SC_CTX *sctx= NULL;
pthread_mutex_lock(&LOCK_schannel_config); pthread_mutex_lock(&LOCK_schannel_config);
@@ -333,7 +331,7 @@ size_t ma_ssl_read(MARIADB_SSL *cssl, const uchar* buffer, size_t length)
MARIADB_PVIO *pvio= sctx->mysql->net.pvio; MARIADB_PVIO *pvio= sctx->mysql->net.pvio;
DWORD dlength= -1; DWORD dlength= -1;
ma_schannel_read_decrypt(pvio, &sctx->CredHdl, &sctx->ctxt, &dlength, (uchar *)buffer, length); ma_schannel_read_decrypt(pvio, &sctx->CredHdl, &sctx->ctxt, &dlength, (uchar *)buffer, (DWORD)length);
return dlength; return dlength;
} }
@@ -472,7 +470,7 @@ unsigned int ma_ssl_get_finger_print(MARIADB_SSL *cssl, unsigned char *fp, unsig
SC_CTX *sctx= (SC_CTX *)cssl->ssl; SC_CTX *sctx= (SC_CTX *)cssl->ssl;
PCCERT_CONTEXT pRemoteCertContext = NULL; PCCERT_CONTEXT pRemoteCertContext = NULL;
if (QueryContextAttributes(&sctx->ctxt, SECPKG_ATTR_REMOTE_CERT_CONTEXT, (PVOID)&pRemoteCertContext) != SEC_E_OK) if (QueryContextAttributes(&sctx->ctxt, SECPKG_ATTR_REMOTE_CERT_CONTEXT, (PVOID)&pRemoteCertContext) != SEC_E_OK)
return NULL; return 0;
CertGetCertificateContextProperty(pRemoteCertContext, CERT_HASH_PROP_ID, fp, (DWORD *)&len); CertGetCertificateContextProperty(pRemoteCertContext, CERT_HASH_PROP_ID, fp, (DWORD *)&len);
return len; return len;
} }

View File

@@ -168,7 +168,7 @@ static int auth_dialog_open(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
response= mysql->passwd; response= mysql->passwd;
} }
if (!response || if (!response ||
vio->write_packet(vio, response, strlen(response) + 1)) vio->write_packet(vio, response, (int)strlen(response) + 1))
return CR_ERROR; return CR_ERROR;
first_loop= FALSE; first_loop= FALSE;

View File

@@ -48,7 +48,7 @@ static int clear_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
return CR_ERROR; return CR_ERROR;
/* write password including terminating zero character */ /* write password including terminating zero character */
return vio->write_packet(vio, (const unsigned char *) mysql->passwd, strlen(mysql->passwd) + 1) ? return vio->write_packet(vio, (const unsigned char *) mysql->passwd, (int)strlen(mysql->passwd) + 1) ?
CR_ERROR : CR_OK; CR_ERROR : CR_OK;
} }
/* }}} */ /* }}} */

View File

@@ -112,7 +112,7 @@ size_t pvio_npipe_read(MARIADB_PVIO *pvio, uchar *buffer, size_t length)
cpipe= (struct st_pvio_npipe *)pvio->data; cpipe= (struct st_pvio_npipe *)pvio->data;
if (ReadFile(cpipe->pipe, (LPVOID)buffer, length, &dwRead, &cpipe->overlapped)) if (ReadFile(cpipe->pipe, (LPVOID)buffer, (DWORD)length, &dwRead, &cpipe->overlapped))
{ {
r= (size_t)dwRead; r= (size_t)dwRead;
goto end; goto end;
@@ -137,7 +137,7 @@ size_t pvio_npipe_write(MARIADB_PVIO *pvio, const uchar *buffer, size_t length)
cpipe= (struct st_pvio_npipe *)pvio->data; cpipe= (struct st_pvio_npipe *)pvio->data;
if (WriteFile(cpipe->pipe, buffer, length, &dwWrite, &cpipe->overlapped)) if (WriteFile(cpipe->pipe, buffer, (DWORD)length, &dwWrite, &cpipe->overlapped))
{ {
r= (size_t)dwWrite; r= (size_t)dwWrite;
goto end; goto end;

View File

@@ -313,7 +313,7 @@ size_t pvio_socket_async_read(MARIADB_PVIO *pvio, uchar *buffer, size_t length)
#ifndef _WIN32 #ifndef _WIN32
r= recv(csock->socket,(void *)buffer, length, read_flags); r= recv(csock->socket,(void *)buffer, length, read_flags);
#else #else
r= recv(csock->socket, (char *)buffer, length, 0); r= recv(csock->socket, (char *)buffer, (int)length, 0);
#endif #endif
return r; return r;
} }
@@ -359,7 +359,7 @@ size_t pvio_socket_async_write(MARIADB_PVIO *pvio, const uchar *buffer, size_t l
#ifndef WIN32 #ifndef WIN32
r= send(csock->socket, buffer, length, write_flags); r= send(csock->socket, buffer, length, write_flags);
#else #else
r= send(csock->socket, buffer, length, 0); r= send(csock->socket, buffer, (int)length, 0);
#endif #endif
return r; return r;
} }
@@ -768,7 +768,7 @@ my_bool pvio_socket_connect(MARIADB_PVIO *pvio, MA_PVIO_CINFO *cinfo)
{ {
for (bres= bind_res; bres; bres= bres->ai_next) for (bres= bind_res; bres; bres= bres->ai_next)
{ {
if (!(rc= bind(csock->socket, bres->ai_addr, bres->ai_addrlen))) if (!(rc= bind(csock->socket, bres->ai_addr, (int)bres->ai_addrlen)))
break; break;
} }
if (rc) if (rc)
@@ -778,7 +778,7 @@ my_bool pvio_socket_connect(MARIADB_PVIO *pvio, MA_PVIO_CINFO *cinfo)
} }
} }
rc= pvio_socket_connect_sync_or_async(pvio, save_res->ai_addr, save_res->ai_addrlen); rc= pvio_socket_connect_sync_or_async(pvio, save_res->ai_addr, (uint)save_res->ai_addrlen);
if (!rc) if (!rc)
{ {
MYSQL *mysql= pvio->mysql; MYSQL *mysql= pvio->mysql;
@@ -921,7 +921,7 @@ my_bool pvio_socket_is_alive(MARIADB_PVIO *pvio)
FD_ZERO(&sfds); FD_ZERO(&sfds);
FD_SET(csock->socket, &sfds); FD_SET(csock->socket, &sfds);
res= select(csock->socket + 1, &sfds, NULL, NULL, &tv); res= select((int)+csock->socket + 1, &sfds, NULL, NULL, &tv);
if (res > 0 && FD_ISSET(csock->socket, &sfds)) if (res > 0 && FD_ISSET(csock->socket, &sfds))
return TRUE; return TRUE;
return FALSE; return FALSE;

View File

@@ -124,7 +124,7 @@ static TRACE_INFO *get_trace_info(unsigned long thread_id)
if (info->thread_id == thread_id) if (info->thread_id == thread_id)
return info; return info;
else else
info= info->next; info= (TRACE_INFO *)info->next;
} }
if (!(info= (TRACE_INFO *)calloc(sizeof(TRACE_INFO), 1))) if (!(info= (TRACE_INFO *)calloc(sizeof(TRACE_INFO), 1)))
@@ -149,7 +149,7 @@ static void delete_trace_info(unsigned long thread_id)
if (last) if (last)
last->next= current->next; last->next= current->next;
else else
trace_info= current->next; trace_info= (TRACE_INFO *)current->next;
if (current->command) if (current->command)
free(current->command); free(current->command);
if (current->db) if (current->db)
@@ -161,7 +161,7 @@ static void delete_trace_info(unsigned long thread_id)
free(current); free(current);
} }
last= current; last= current;
current= current->next; current= (TRACE_INFO *)current->next;
} }
} }
@@ -213,7 +213,7 @@ static int trace_deinit()
while(trace_info) while(trace_info)
{ {
printf("Warning: Connection for thread %lu not properly closed\n", trace_info->thread_id); printf("Warning: Connection for thread %lu not properly closed\n", trace_info->thread_id);
trace_info= trace_info->next; trace_info= (TRACE_INFO *)trace_info->next;
} }
register_callback(FALSE, trace_callback); register_callback(FALSE, trace_callback);
return 0; return 0;

View File

@@ -322,11 +322,11 @@ static int test_ps_i18n(MYSQL *mysql)
memset(bind_array, '\0', sizeof(bind_array)); memset(bind_array, '\0', sizeof(bind_array));
bind_array[0].buffer_type= MYSQL_TYPE_STRING; bind_array[0].buffer_type= MYSQL_TYPE_STRING;
bind_array[0].buffer= (void *) koi8; bind_array[0].buffer= (void *) koi8;
bind_array[0].buffer_length= strlen(koi8); bind_array[0].buffer_length= (unsigned long)strlen(koi8);
bind_array[1].buffer_type= MYSQL_TYPE_STRING; bind_array[1].buffer_type= MYSQL_TYPE_STRING;
bind_array[1].buffer= (void *) koi8; bind_array[1].buffer= (void *) koi8;
bind_array[1].buffer_length= strlen(koi8); bind_array[1].buffer_length= (unsigned long)strlen(koi8);
stmt= mysql_stmt_init(mysql); stmt= mysql_stmt_init(mysql);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
@@ -393,11 +393,11 @@ static int test_ps_i18n(MYSQL *mysql)
/* this data must be converted */ /* this data must be converted */
bind_array[0].buffer_type= MYSQL_TYPE_STRING; bind_array[0].buffer_type= MYSQL_TYPE_STRING;
bind_array[0].buffer= (void *) koi8; bind_array[0].buffer= (void *) koi8;
bind_array[0].buffer_length= strlen(koi8); bind_array[0].buffer_length= (unsigned long)strlen(koi8);
bind_array[1].buffer_type= MYSQL_TYPE_STRING; bind_array[1].buffer_type= MYSQL_TYPE_STRING;
bind_array[1].buffer= (void *) koi8; bind_array[1].buffer= (void *) koi8;
bind_array[1].buffer_length= strlen(koi8); bind_array[1].buffer_length= (unsigned long)strlen(koi8);
mysql_stmt_bind_param(stmt, bind_array); mysql_stmt_bind_param(stmt, bind_array);
@@ -408,11 +408,11 @@ static int test_ps_i18n(MYSQL *mysql)
/* this data must not be converted */ /* this data must not be converted */
bind_array[0].buffer_type= MYSQL_TYPE_BLOB; bind_array[0].buffer_type= MYSQL_TYPE_BLOB;
bind_array[0].buffer= (void *) cp1251; bind_array[0].buffer= (void *) cp1251;
bind_array[0].buffer_length= strlen(cp1251); bind_array[0].buffer_length= (unsigned long)strlen(cp1251);
bind_array[1].buffer_type= MYSQL_TYPE_BLOB; bind_array[1].buffer_type= MYSQL_TYPE_BLOB;
bind_array[1].buffer= (void *) cp1251; bind_array[1].buffer= (void *) cp1251;
bind_array[1].buffer_length= strlen(cp1251); bind_array[1].buffer_length= (unsigned long)strlen(cp1251);
mysql_stmt_bind_param(stmt, bind_array); mysql_stmt_bind_param(stmt, bind_array);

View File

@@ -478,7 +478,7 @@ static int test_bug10794(MYSQL *mysql)
{ {
id_val= (i+1)*10; id_val= (i+1)*10;
sprintf(a, "a%d", i); sprintf(a, "a%d", i);
a_len= strlen(a); /* safety against broken sprintf */ a_len= (unsigned long)strlen(a); /* safety against broken sprintf */
rc= mysql_stmt_execute(stmt); rc= mysql_stmt_execute(stmt);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
} }
@@ -728,7 +728,7 @@ static int test_bug11656(MYSQL *mysql)
{ {
my_bind[i].buffer_type= MYSQL_TYPE_STRING; my_bind[i].buffer_type= MYSQL_TYPE_STRING;
my_bind[i].buffer= (uchar* *)&buf[i]; my_bind[i].buffer= (uchar* *)&buf[i];
my_bind[i].buffer_length= strlen(buf[i]); my_bind[i].buffer_length= (unsigned long)strlen(buf[i]);
} }
rc= mysql_stmt_bind_param(stmt, my_bind); rc= mysql_stmt_bind_param(stmt, my_bind);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);

View File

@@ -61,7 +61,7 @@ static int test_logs(MYSQL *mysql)
MYSQL_STMT *stmt; MYSQL_STMT *stmt;
MYSQL_BIND my_bind[2]; MYSQL_BIND my_bind[2];
char data[255]; char data[255];
ulong length; size_t length;
int rc; int rc;
short id; short id;

View File

@@ -630,7 +630,7 @@ static int test_wl4166_4(MYSQL *mysql)
bind_array[1].buffer_type= MYSQL_TYPE_STRING; bind_array[1].buffer_type= MYSQL_TYPE_STRING;
bind_array[1].buffer= (void *) koi8; bind_array[1].buffer= (void *) koi8;
bind_array[1].buffer_length= strlen(koi8); bind_array[1].buffer_length= (unsigned long)strlen(koi8);
stmt= mysql_stmt_init(mysql); stmt= mysql_stmt_init(mysql);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
@@ -933,7 +933,7 @@ static int test_connect_attrs(MYSQL *my)
mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "foo1"); mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "foo1");
mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "foo2"); mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_DELETE, "foo2");
len= mysql->options.extension->connect_attrs_len; len= (int)mysql->options.extension->connect_attrs_len;
mysql_close(mysql); mysql_close(mysql);

View File

@@ -50,6 +50,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define MAX_TEST_QUERY_LENGTH 300 /* MAX QUERY BUFFER LENGTH */ #define MAX_TEST_QUERY_LENGTH 300 /* MAX QUERY BUFFER LENGTH */
/* prevent warnings on Win64 by using STMT_LEN instead of strlen */
#define STMT_LEN(A) (unsigned long)strlen((A))
#define check_mysql_rc(rc, mysql) \ #define check_mysql_rc(rc, mysql) \
if (rc)\ if (rc)\
{\ {\
@@ -195,7 +198,7 @@ int my_stmt_result(MYSQL *mysql, const char *buff)
stmt= mysql_stmt_init(mysql); stmt= mysql_stmt_init(mysql);
rc= mysql_stmt_prepare(stmt, buff, strlen(buff)); rc= mysql_stmt_prepare(stmt, buff, (unsigned long)strlen(buff));
FAIL_IF(rc, mysql_stmt_error(stmt)); FAIL_IF(rc, mysql_stmt_error(stmt));
rc= mysql_stmt_execute(stmt); rc= mysql_stmt_execute(stmt);

View File

@@ -613,7 +613,7 @@ static int test_bug1500(MYSQL *mysql)
data= "Dogs"; data= "Dogs";
my_bind[0].buffer_type= MYSQL_TYPE_STRING; my_bind[0].buffer_type= MYSQL_TYPE_STRING;
my_bind[0].buffer= (void *) data; my_bind[0].buffer= (void *) data;
my_bind[0].buffer_length= strlen(data); my_bind[0].buffer_length= (unsigned long)strlen(data);
my_bind[0].is_null= 0; my_bind[0].is_null= 0;
my_bind[0].length= 0; my_bind[0].length= 0;
@@ -842,7 +842,7 @@ static int test_bug1664(MYSQL *mysql)
my_bind[0].buffer_type= MYSQL_TYPE_STRING; my_bind[0].buffer_type= MYSQL_TYPE_STRING;
my_bind[0].buffer= (void *)str_data; my_bind[0].buffer= (void *)str_data;
my_bind[0].buffer_length= strlen(str_data); my_bind[0].buffer_length= (unsigned long)strlen(str_data);
my_bind[1].buffer= (void *)&int_data; my_bind[1].buffer= (void *)&int_data;
my_bind[1].buffer_type= MYSQL_TYPE_LONG; my_bind[1].buffer_type= MYSQL_TYPE_LONG;
@@ -1642,7 +1642,7 @@ static int test_ps_conj_select(MYSQL *mysql)
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
int_data= 1; int_data= 1;
strcpy(str_data, "hh"); strcpy(str_data, "hh");
str_length= strlen(str_data); str_length= (unsigned long)strlen(str_data);
rc= mysql_stmt_execute(stmt); rc= mysql_stmt_execute(stmt);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
@@ -1882,7 +1882,7 @@ static int test_ps_query_cache(MYSQL *mysql)
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
p_int_data= 1; p_int_data= 1;
strcpy(p_str_data, "hh"); strcpy(p_str_data, "hh");
p_str_length= strlen(p_str_data); p_str_length= (unsigned long)strlen(p_str_data);
memset(r_bind, '\0', sizeof(r_bind)); memset(r_bind, '\0', sizeof(r_bind));
r_bind[0].buffer_type= MYSQL_TYPE_LONG; r_bind[0].buffer_type= MYSQL_TYPE_LONG;
@@ -1934,7 +1934,7 @@ static int test_ps_query_cache(MYSQL *mysql)
/* now modify parameter values and see qcache hits */ /* now modify parameter values and see qcache hits */
strcpy(p_str_data, "ii"); strcpy(p_str_data, "ii");
p_str_length= strlen(p_str_data); p_str_length= (unsigned long)strlen(p_str_data);
rc= mysql_stmt_execute(stmt); rc= mysql_stmt_execute(stmt);
check_stmt_rc(rc, stmt); check_stmt_rc(rc, stmt);
test_ps_query_cache_result(1, "hh", 2, 1, "ii", 2, 2, "ii", 2); test_ps_query_cache_result(1, "hh", 2, 1, "ii", 2, 2, "ii", 2);
@@ -2124,7 +2124,7 @@ static int test_bug3796(MYSQL *mysql)
memset(my_bind, '\0', sizeof(my_bind)); memset(my_bind, '\0', sizeof(my_bind));
my_bind[0].buffer_type= MYSQL_TYPE_STRING; my_bind[0].buffer_type= MYSQL_TYPE_STRING;
my_bind[0].buffer= (void *) concat_arg0; my_bind[0].buffer= (void *) concat_arg0;
my_bind[0].buffer_length= strlen(concat_arg0); my_bind[0].buffer_length= (unsigned long)strlen(concat_arg0);
mysql_stmt_bind_param(stmt, my_bind); mysql_stmt_bind_param(stmt, my_bind);

View File

@@ -1089,7 +1089,7 @@ must_use_null_useddefaultchar(int codepage)
static char * static char *
strrstr(const char *str, const char *token) strrstr(const char *str, const char *token)
{ {
int len = strlen(token); size_t len = strlen(token);
const char *p = str + strlen(str); const char *p = str + strlen(str);
while (str <= --p) while (str <= --p)