summaryrefslogtreecommitdiff
path: root/BUILD/compile-pentium64-gprof
diff options
context:
space:
mode:
authorArun Kuruvila <arun.kuruvila@oracle.com>2015-04-28 14:56:55 +0530
committerArun Kuruvila <arun.kuruvila@oracle.com>2015-04-28 14:56:55 +0530
commitfdae90dd11b6f1230f66d530f2d213599f58c760 (patch)
tree56bde90911d741c6d2f9a8066ff814c701d975db /BUILD/compile-pentium64-gprof
parentc655515d1b52a16d5d074cd29a50c267c6c3db49 (diff)
downloadmariadb-git-fdae90dd11b6f1230f66d530f2d213599f58c760.tar.gz
Bug #20181776 :- ACCESS CONTROL DOESN'T MATCH MOST SPECIFIC
HOST WHEN IT CONTAINS WILDCARD Description :- Incorrect access privileges are provided to a user due to wrong sorting of users when wildcard characters is present in the hostname. Analysis :- Function "get_sorts()" is used to sort the strings of user name, hostname, database name. It is used to arrange the users in the access privilege matching order. When a user connects, it checks in the sorted user access privilege list and finds a corresponding matching entry for the user. Algorithm used in "get_sort()" sorts the strings inappropriately. As a result, when a user connects to the server, it is mapped to incorrect user access privileges. Algorithm used in "get_sort()" counts the number of characters before the first occurence of any one of the wildcard characters (single-wildcard character '_' or multi-wildcard character '%') and sorts in that order. As a result of inconnect sorting it treats hostname "%" and "%.mysql.com" as equally-specific values and therefore the order is indeterminate. Fix:- The "get_sort()" algorithm has been modified to treat "%" seperately. Now "get_sort()" returns a number which, if sorted in descending order, puts strings in the following order:- * strings with no wildcards * strings containg wildcards and non-wildcard characters * single muilt-wildcard character('%') * empty string.
Diffstat (limited to 'BUILD/compile-pentium64-gprof')
0 files changed, 0 insertions, 0 deletions