diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index 28e2cbbc4..b7316b218 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -1745,7 +1745,7 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, free(s_passwd); free(s_db); - if (db && !(mysql->db= strdup(db))) + if (!mysql->db && db && !(mysql->db= strdup(db))) { SET_CLIENT_ERROR(mysql, CR_OUT_OF_MEMORY, SQLSTATE_UNKNOWN, 0); rc= 1; diff --git a/libmariadb/secure/openssl.c b/libmariadb/secure/openssl.c index 4208828bc..2d8fc6969 100644 --- a/libmariadb/secure/openssl.c +++ b/libmariadb/secure/openssl.c @@ -719,15 +719,14 @@ ssize_t ma_tls_write_async(MARIADB_PVIO *pvio, ssize_t ma_tls_read(MARIADB_TLS *ctls, const uchar* buffer, size_t length) { ssize_t rc; - MYSQL *mysql= (MYSQL *)SSL_get_app_data(ctls->ssl); - MARIADB_PVIO *pvio= mysql->net.pvio; + MARIADB_PVIO *pvio= ctls->pvio; while ((rc= SSL_read((SSL *)ctls->ssl, (void *)buffer, (int)length)) < 0) { int error= SSL_get_error((SSL *)ctls->ssl, rc); if (error != SSL_ERROR_WANT_READ) return rc; - if (pvio->methods->wait_io_or_timeout(pvio, TRUE, mysql->options.read_timeout) < 1) + if (pvio->methods->wait_io_or_timeout(pvio, TRUE, pvio->mysql->options.read_timeout) < 1) return rc; } return rc; @@ -736,15 +735,14 @@ ssize_t ma_tls_read(MARIADB_TLS *ctls, const uchar* buffer, size_t length) ssize_t ma_tls_write(MARIADB_TLS *ctls, const uchar* buffer, size_t length) { ssize_t rc; - MYSQL *mysql= (MYSQL *)SSL_get_app_data(ctls->ssl); - MARIADB_PVIO *pvio= mysql->net.pvio; + MARIADB_PVIO *pvio= ctls->pvio; while ((rc= SSL_write((SSL *)ctls->ssl, (void *)buffer, (int)length)) <= 0) { int error= SSL_get_error((SSL *)ctls->ssl, rc); if (error != SSL_ERROR_WANT_WRITE) return rc; - if (pvio->methods->wait_io_or_timeout(pvio, TRUE, mysql->options.write_timeout) < 1) + if (pvio->methods->wait_io_or_timeout(pvio, TRUE, pvio->mysql->options.write_timeout) < 1) return rc; } return rc; diff --git a/unittest/libmariadb/connection.c b/unittest/libmariadb/connection.c index 5ebcc44df..bcdf2bcab 100644 --- a/unittest/libmariadb/connection.c +++ b/unittest/libmariadb/connection.c @@ -1084,6 +1084,7 @@ static int test_auth256(MYSQL *my) if (!mysql_client_find_plugin(mysql, "sha256_password", 3)) { diag("sha256_password plugin not available"); + mysql_close(mysql); return SKIP; } @@ -1097,6 +1098,7 @@ static int test_auth256(MYSQL *my) if (!num_rows) { diag("server doesn't support sha256 authentication"); + mysql_close(mysql); return SKIP; }