Bug #35924 | DEFINER should be stored 'quoted' in I_S | ||
---|---|---|---|
Submitted: | 9 Apr 2008 8:39 | Modified: | 17 Oct 2008 17:24 |
Reporter: | Peter Laursen (Basic Quality Contributor) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Information schema | Severity: | S2 (Serious) |
Version: | 5.0.51a | OS: | Any |
Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
Tags: | qc |
[9 Apr 2008 8:39]
Peter Laursen
[9 Apr 2008 9:15]
Valeriy Kravchuk
Thank you for a bug report. Verified just as described: mysql> CREATE -> DEFINER = 'aa@@'@'@@bb' -> VIEW `test`.`vi` -> AS -> SELECT 1; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> show warnings\G *************************** 1. row *************************** Level: Note Code: 1449 Message: There is no 'aa@@'@'@@bb' registered 1 row in set (0.01 sec) mysql> delimiter // mysql> create table tab1(c1 int)// Query OK, 0 rows affected (0.09 sec) mysql> CREATE -> DEFINER = 'aa@@'@'@@bb' -> TRIGGER `test`.`tr2` BEFORE INSERT -> ON `test`.`tab1` -> FOR EACH ROW BEGIN -> -- nothing -> END// Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> show warnings\G *************************** 1. row *************************** Level: Note Code: 1449 Message: There is no 'aa@@'@'@@bb' registered 1 row in set (0.00 sec) mysql> select * from information_schema.triggers where trigger_name='tr2'\G *************************** 1. row *************************** TRIGGER_CATALOG: NULL TRIGGER_SCHEMA: test TRIGGER_NAME: tr2 EVENT_MANIPULATION: INSERT EVENT_OBJECT_CATALOG: NULL EVENT_OBJECT_SCHEMA: test EVENT_OBJECT_TABLE: tab1 ACTION_ORDER: 0 ACTION_CONDITION: NULL ACTION_STATEMENT: BEGIN END ACTION_ORIENTATION: ROW ACTION_TIMING: BEFORE ACTION_REFERENCE_OLD_TABLE: NULL ACTION_REFERENCE_NEW_TABLE: NULL ACTION_REFERENCE_OLD_ROW: OLD ACTION_REFERENCE_NEW_ROW: NEW CREATED: NULL SQL_MODE: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SU BSTITUTION DEFINER: aa@@@@@bb 1 row in set, 2 warnings (7.19 sec) mysql> select * from information_schema.views where table_name='vi'\G *************************** 1. row *************************** TABLE_CATALOG: NULL TABLE_SCHEMA: test TABLE_NAME: vi VIEW_DEFINITION: CHECK_OPTION: NONE IS_UPDATABLE: NO DEFINER: aa@@@@@bb SECURITY_TYPE: DEFINER 1 row in set, 1 warning (0.00 sec) mysql> show create view vi\G *************************** 1. row *************************** View: vi Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`aa@@`@`@@bb` SQL SECURITY DEFIN ER VIEW `vi` AS select 1 AS `1` 1 row in set, 1 warning (0.02 sec) mysql> show create trigger tr2\G ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trigg er tr2' at line 1 So, there is NO workaround for triggers.
[9 Apr 2008 9:18]
Peter Laursen
also mysqldump gets fooled here. CREATE TRIGGER using DEFINER = 'nithin@@'@'@ss' MySQL dump dumps as DEFINER=`nithin@@@`@`ss` I think that it is 'assumed' that hostname cannot start with @. Why then let it create?
[21 Apr 2008 10:23]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/45752 ChangeSet@1.2611, 2008-04-21 15:14:58+05:00, gluh@mysql.com +5 -0 Bug#35924 DEFINER should be stored 'quoted' in I_S The '@' symbol can not be used in the host name according to rfc952. The fix: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length(HOSTNAME_LENGTH).
[23 Apr 2008 9:39]
Alexander Nozdrin
Review comments sent over the email. Patch is approved with a few changes.
[23 Apr 2008 10:33]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/45878 ChangeSet@1.2611, 2008-04-23 15:25:07+05:00, gluh@mysql.com +5 -0 Bug#35924 DEFINER should be stored 'quoted' in I_S The '@' symbol can not be used in the host name according to rfc952. The fix: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length (just moved check_string_length() function from the parser into check_host_name()).
[2 Oct 2008 11:58]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/55067 2694 Sergey Glukhov 2008-10-02 Bug#35924 DEFINER should be stored 'quoted' in I_S The '@' symbol can not be used in the host name according to rfc952. The fix: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length (just moved check_string_length() function from the parser into check_host_name()).
[2 Oct 2008 14:16]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/55086 2694 Sergey Glukhov 2008-10-02 Bug#35924 DEFINER should be stored 'quoted' in I_S The '@' symbol can not be used in the host name according to rfc952. The fix: added function check_host_name(LEX_STRING *str) which checks that all symbols in host name string are valid and host name length is not more than max host name length (just moved check_string_length() function from the parser into check_host_name()).
[9 Oct 2008 17:28]
Bugs System
Pushed into 5.0.72 (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:vvaintroub@mysql.com-20081002154837-s9bff7wyoftpkjf3) (pib:4)
[9 Oct 2008 17:43]
Bugs System
Pushed into 5.1.30 (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:mats@sun.com-20081008113713-2vxny72m5w1tywoi) (pib:4)
[15 Oct 2008 15:03]
Paul DuBois
This is actually pushed to 5.1.29, not 5.1.30.
[16 Oct 2008 14:56]
Paul DuBois
Noted in 5.0.72, 5.1.29 changelogs. Hostname values in SQL statements were not being checked for '@', which is illegal according to RFC952. Setting report to NDI pending push into 6.0.x.
[17 Oct 2008 16:46]
Bugs System
Pushed into 6.0.8-alpha (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:sergey.glukhov@sun.com-20081002140357-1fa0k9axkespo07x) (pib:5)
[17 Oct 2008 17:24]
Paul DuBois
Noted in 6.0.8 changelog.
[28 Oct 2008 21:06]
Bugs System
Pushed into 5.1.29-ndb-6.2.17 (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:tomas.ulin@sun.com-20081028140209-u4emkk1xphi5tkfb) (pib:5)
[28 Oct 2008 22:25]
Bugs System
Pushed into 5.1.29-ndb-6.3.19 (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:tomas.ulin@sun.com-20081028194045-0353yg8cvd2c7dd1) (pib:5)
[1 Nov 2008 9:51]
Bugs System
Pushed into 5.1.29-ndb-6.4.0 (revid:sergey.glukhov@sun.com-20081002115752-s1coraxbp7gg2z2a) (version source revid:jonas@mysql.com-20081101082305-qx5a1bj0z7i8ueys) (pib:5)