diff --git a/server/core/dbusers.c b/server/core/dbusers.c index 8a114cb39..df18bb0ec 100644 --- a/server/core/dbusers.c +++ b/server/core/dbusers.c @@ -47,6 +47,8 @@ #include #include #include +#include + #define USERS_QUERY_NO_ROOT " AND user NOT IN ('root')" #define LOAD_MYSQL_USERS_QUERY "SELECT user, host, password, concat(user,host,password,Select_priv) AS userdata, Select_priv AS anydb FROM mysql.user WHERE user IS NOT NULL AND user <> ''" @@ -494,7 +496,7 @@ getUsers(SERVICE *service, USERS *users) /* start with users and db grants for users */ if (mysql_query(con, MYSQL_USERS_WITH_DB_COUNT)) { - if (1142 != mysql_errno(con)) { + if (mysql_errno(con) != ER_TABLEACCESS_DENIED_ERROR) { /* This is an error we cannot handle, return */ LOGIF(LE, (skygw_log_write_flush( LOGFILE_ERROR, diff --git a/server/modules/protocol/mysql_common.c b/server/modules/protocol/mysql_common.c index 00bdd0e3f..f3376a7eb 100644 --- a/server/modules/protocol/mysql_common.c +++ b/server/modules/protocol/mysql_common.c @@ -1221,7 +1221,7 @@ int gw_send_change_user_to_backend( * @param scramble_len The scrable size in bytes * @param username The current username in the authentication request * @param stage1_hash The SHA1(candidate_password) decoded by this routine - * @return 0 on succesful check or != 0 on failure + * @return 0 on succesful check or 1 on failure * */ int gw_check_mysql_scramble_data(DCB *dcb, uint8_t *token, unsigned int token_len, uint8_t *scramble, unsigned int scramble_len, char *username, uint8_t *stage1_hash) { @@ -1321,7 +1321,12 @@ int gw_check_mysql_scramble_data(DCB *dcb, uint8_t *token, unsigned int token_le #endif /* now compare SHA1(SHA1(gateway_password)) and check_hash: return 0 is MYSQL_AUTH_OK */ - return memcmp(password, check_hash, SHA_DIGEST_LENGTH); + ret_val = memcmp(password, check_hash, SHA_DIGEST_LENGTH); + + if (ret_val != 0) + return 1; + else + return 0; } /**