Commit 14fef80d authored by unknown's avatar unknown
Browse files

Bug #10668: CREATE USER does not enforce username length limit

  This appears to have just been an oversight -- CREATE USER was not enforcing
  the existing username limitations.


mysql-test/r/grant.result:
  Add new results
mysql-test/t/grant.test:
  Add new regression test
sql/sql_acl.cc:
  Enforce the user and host name limits in mysql_create_user().
parent dc50ce99
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -867,3 +867,6 @@ insert into mysql.user select * from t2;
flush privileges;
drop table t2;
drop table t1;
create user mysqltest1_thisisreallytoolong;
ERROR HY000: Operation CREATE USER failed for 'mysqltest1_thisisreallytoolong'@'%'
End of 5.0 tests
+6 −0
Original line number Diff line number Diff line
@@ -680,4 +680,10 @@ drop table t2;

drop table t1;

#
# Bug #10668: CREATE USER does not enforce username length limit
#
--error ER_CANNOT_USER
create user mysqltest1_thisisreallytoolong;

--echo End of 5.0 tests
+10 −1
Original line number Diff line number Diff line
@@ -5221,6 +5221,15 @@ bool mysql_create_user(THD *thd, List <LEX_USER> &list)
      result= TRUE;
      continue;
    }

    if (user_name->host.length > HOSTNAME_LENGTH ||
	user_name->user.length > USERNAME_LENGTH)
    {
      append_user(&wrong_users, user_name);
      result= TRUE;
      continue;
    }

    /*
      Search all in-memory structures and grant tables
      for a mention of the new user name.