Fix empty password detection
If a user was defined without a password, the authentication would fail.
This commit is contained in:
		@ -160,6 +160,11 @@ static bool check_database(sqlite3 *handle, const char *database)
 | 
			
		||||
    return rval;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool no_password_required(const char *result, size_t tok_len)
 | 
			
		||||
{
 | 
			
		||||
    return *result == '\0' && tok_len == 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Used to detect empty result sets */
 | 
			
		||||
struct user_query_result
 | 
			
		||||
{
 | 
			
		||||
@ -218,7 +223,8 @@ int validate_mysql_user(sqlite3 *handle, DCB *dcb, MYSQL_session *session,
 | 
			
		||||
    {
 | 
			
		||||
        /** Found a matching row */
 | 
			
		||||
 | 
			
		||||
        if (check_password(res.output, session->auth_token, session->auth_token_len,
 | 
			
		||||
        if (no_password_required(res.output, session->auth_token_len) ||
 | 
			
		||||
            check_password(res.output, session->auth_token, session->auth_token_len,
 | 
			
		||||
                           scramble, scramble_len, session->client_sha1))
 | 
			
		||||
        {
 | 
			
		||||
            /** Password is OK, check that the database exists */
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user