Bug #79396 | null pointer dereference | ||
---|---|---|---|
Submitted: | 24 Nov 2015 11:48 | Modified: | 26 Apr 2016 14:19 |
Reporter: | Павел Гусев | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
Version: | OS: | Any | |
Assigned to: | CPU Architecture: | Any |
[24 Nov 2015 11:48]
Павел Гусев
[27 Nov 2015 18:05]
MySQL Verification Team
Are you referring to this statement: my_error(ER_SP_WRONG_NAME, MYF(0), ident->str); where both `ident` or / and `ident->str may be NULL ??? Please, reply ....
[27 Nov 2015 18:48]
Павел Гусев
I mean, if ident is NULL, whole expression (!ident || !ident->str || !ident->str0 || ident->str[ident->length-1] == ' ') is true, because (!ident) is true, so this code is executed: my_error(ER_SP_WRONG_NAME, MYF(0), ident->str); but ident is NULL. I guess, it should be if (!ident ) { my_error(ER_SP_WRONG_NAME, MYF(0)); return true; } if (!ident->str || !ident->str[0] || ident->str[ident->length-1] == ' ') { my_error(ER_SP_WRONG_NAME, MYF(0), ident->str); return true; }
[30 Nov 2015 14:37]
MySQL Verification Team
Pavel, Thank you for your report. I do not think that your patch is good enough. I would vote for the following patch: if (!ident || !ident->str ) { my_error(ER_SP_WRONG_NAME, MYF(0)); return true; } if (!ident->str[0] || ident->str[ident->length-1] == ' ') { my_error(ER_SP_WRONG_NAME, MYF(0), ident->str); return true; } Simply, ident->str could be NULL !!!!
[26 Apr 2016 14:19]
Paul DuBois
Posted by developer: Noted in 5.5.50, 5.6.31, 5.7.13 changelogs. A null pointer dereference of a parser structure could occur during stored procedure name validation.