Loading sql/sql_acl.cc +6 −2 Original line number Diff line number Diff line Loading @@ -855,6 +855,9 @@ static void acl_insert_db(const char *user, const char *host, const char *db, /* Get privilege for a host, user and db combination as db_is_pattern changes the semantics of comparison, acl_cache is not used if db_is_pattern is set. */ ulong acl_get(const char *host, const char *ip, const char *bin_ip, Loading @@ -875,7 +878,7 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, db=tmp_db; } key_length=(uint) (end-key); if ((entry=(acl_entry*) acl_cache->search(key,key_length))) if (!db_is_pattern && (entry=(acl_entry*) acl_cache->search(key,key_length))) { db_access=entry->access; VOID(pthread_mutex_unlock(&acl_cache->lock)); Loading Loading @@ -923,7 +926,8 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, } exit: /* Save entry in cache for quick retrieval */ if ((entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length))) if (!db_is_pattern && (entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length))) { entry->access=(db_access & host_access); entry->length=key_length; Loading sql/sql_parse.cc +2 −2 Original line number Diff line number Diff line Loading @@ -2727,7 +2727,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (!(thd->master_access & SELECT_ACL) && (db && (!thd->db || strcmp(db,thd->db)))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, thd->priv_user, db, 0); /* purecov: inspected */ thd->priv_user, db, test(want_access & GRANT_ACL)); *save_priv=thd->master_access | db_access; DBUG_RETURN(FALSE); } Loading @@ -2747,7 +2747,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (db && (!thd->db || strcmp(db,thd->db))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, thd->priv_user, db, 0); /* purecov: inspected */ thd->priv_user, db, test(want_access & GRANT_ACL)); else db_access=thd->db_access; // Remove SHOW attribute and access rights we already have Loading Loading
sql/sql_acl.cc +6 −2 Original line number Diff line number Diff line Loading @@ -855,6 +855,9 @@ static void acl_insert_db(const char *user, const char *host, const char *db, /* Get privilege for a host, user and db combination as db_is_pattern changes the semantics of comparison, acl_cache is not used if db_is_pattern is set. */ ulong acl_get(const char *host, const char *ip, const char *bin_ip, Loading @@ -875,7 +878,7 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, db=tmp_db; } key_length=(uint) (end-key); if ((entry=(acl_entry*) acl_cache->search(key,key_length))) if (!db_is_pattern && (entry=(acl_entry*) acl_cache->search(key,key_length))) { db_access=entry->access; VOID(pthread_mutex_unlock(&acl_cache->lock)); Loading Loading @@ -923,7 +926,8 @@ ulong acl_get(const char *host, const char *ip, const char *bin_ip, } exit: /* Save entry in cache for quick retrieval */ if ((entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length))) if (!db_is_pattern && (entry= (acl_entry*) malloc(sizeof(acl_entry)+key_length))) { entry->access=(db_access & host_access); entry->length=key_length; Loading
sql/sql_parse.cc +2 −2 Original line number Diff line number Diff line Loading @@ -2727,7 +2727,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (!(thd->master_access & SELECT_ACL) && (db && (!thd->db || strcmp(db,thd->db)))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, thd->priv_user, db, 0); /* purecov: inspected */ thd->priv_user, db, test(want_access & GRANT_ACL)); *save_priv=thd->master_access | db_access; DBUG_RETURN(FALSE); } Loading @@ -2747,7 +2747,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, if (db && (!thd->db || strcmp(db,thd->db))) db_access=acl_get(thd->host, thd->ip, (char*) &thd->remote.sin_addr, thd->priv_user, db, 0); /* purecov: inspected */ thd->priv_user, db, test(want_access & GRANT_ACL)); else db_access=thd->db_access; // Remove SHOW attribute and access rights we already have Loading