| Bug #14376 | MySQL crash on scoped variable (re)initialization | ||
|---|---|---|---|
| Submitted: | 27 Oct 2005 6:35 | Modified: | 2 Dec 2005 20:27 |
| Reporter: | Josh Chamas | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S1 (Critical) |
| Version: | 5.0.15-nt, 5.0.16-BK | OS: | Linux (Linux, Windows) |
| Assigned to: | Per-Erik Martin | CPU Architecture: | Any |
[27 Oct 2005 6:35]
Josh Chamas
[27 Oct 2005 9:44]
Valeriy Kravchuk
Thank you for a bug report. This crash is easily repeatable both with 5.0.15 on Windows (note that procedure is called p1, not x1, as in original report):
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 325 to server version: 5.0.15-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test;
Database changed
mysql> delimiter //
mysql> drop procedure if exists p1 //
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> create procedure p1()
-> begin
-> declare x1 char(100) default 'outer';
-> begin
-> declare x1 char(100) default x1;
-> end;
-> end;
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> call p1()//
ERROR 2013 (HY000): Lost connection to MySQL server during query
and on my Fedora Core Linux with 5.0.16-BK (see the Changeset):
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 5.0.16
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> delimiter //
mysql> drop procedure if exists p1 //
cQuery OK, 0 rows affected, 1 warning (0,00 sec)
mysql> create procedure p1()
-> begin
-> declare x1 char(100) default 'outer';
-> begin
-> declare x1 char(100) default x1;
-> end;
-> end;
-> //
Query OK, 0 rows affected (0,02 sec)
mysql> call p1()//
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
Number of processes running now: 0
051027 12:35:27 mysqld restarted
This may even lead to a simple DoS attack...
[31 Oct 2005 2:09]
Peter Gulutzan
I believe this is the same thing: If I say that a variable's default value is the variable name, crash. mysql> create procedure px () begin declare x int default x; end// Query OK, 0 rows affected (0.00 sec) mysql> call px()// ERROR 2013 (HY000): Lost connection to MySQL server during query
[1 Nov 2005 14:01]
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/internals/31736
[2 Dec 2005 12:52]
Konstantin Osipov
Approved by email with a few notes.
[2 Dec 2005 13:37]
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/internals/32961
[2 Dec 2005 16:03]
Per-Erik Martin
Pushed to 5.0.17 bk.
[2 Dec 2005 20:27]
Paul DuBois
Noted in 5.0.17 changelog.
