From 60c33b149c95df1c11ba7300c49af9efce6c1a03 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Mon, 16 Sep 2019 09:32:47 +0300 Subject: [PATCH] MXS-2674 Prevent read of unitialized variable --- .../qc_mysqlembedded/qc_mysqlembedded.cc | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc index 2a3f8b1b9..019dc699f 100644 --- a/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc +++ b/query_classifier/qc_mysqlembedded/qc_mysqlembedded.cc @@ -1665,26 +1665,30 @@ int32_t qc_mysql_query_has_clause(GWBUF* buf, int32_t* has_clause) if (lex) { + int cmd = lex->sql_command; + if (!lex->describe - && !is_show_command(lex->sql_command) - && (lex->sql_command != SQLCOM_ALTER_PROCEDURE) - && (lex->sql_command != SQLCOM_ALTER_TABLE) - && (lex->sql_command != SQLCOM_CALL) - && (lex->sql_command != SQLCOM_CREATE_PROCEDURE) - && (lex->sql_command != SQLCOM_CREATE_TABLE) - && (lex->sql_command != SQLCOM_DROP_FUNCTION) - && (lex->sql_command != SQLCOM_DROP_PROCEDURE) - && (lex->sql_command != SQLCOM_DROP_TABLE) - && (lex->sql_command != SQLCOM_DROP_VIEW) - && (lex->sql_command != SQLCOM_FLUSH) - && (lex->sql_command != SQLCOM_ROLLBACK) + && !is_show_command(cmd) + && (cmd != SQLCOM_ALTER_PROCEDURE) + && (cmd != SQLCOM_ALTER_TABLE) + && (cmd != SQLCOM_CALL) + && (cmd != SQLCOM_CREATE_PROCEDURE) + && (cmd != SQLCOM_CREATE_TABLE) + && (cmd != SQLCOM_DROP_FUNCTION) + && (cmd != SQLCOM_DROP_PROCEDURE) + && (cmd != SQLCOM_DROP_TABLE) + && (cmd != SQLCOM_DROP_VIEW) + && (cmd != SQLCOM_FLUSH) + && (cmd != SQLCOM_ROLLBACK) ) { SELECT_LEX* current = lex->all_selects_list; while (current && !*has_clause) { - if (current->where || current->having || current->select_limit) + if (current->where || current->having || + ((cmd == SQLCOM_SELECT || cmd == SQLCOM_DELETE || cmd == SQLCOM_UPDATE) + && current->select_limit)) { *has_clause = true; }