diff --git a/deps/libinjection/libinjection_sqli_data.h b/deps/libinjection/libinjection_sqli_data.h index bff90409b..d5783b2a2 100644 --- a/deps/libinjection/libinjection_sqli_data.h +++ b/deps/libinjection/libinjection_sqli_data.h @@ -9057,6 +9057,7 @@ static const keyword_t sql_keywords[] = { {"RIGHT OUTER", 'k'}, {"RIGHT OUTER JOIN", 'k'}, {"RLIKE", 'o'}, + {"ROLLBACK", 'T'}, {"ROUND", 'f'}, {"ROW", 'f'}, {"ROW_COUNT", 'f'}, @@ -9346,5 +9347,5 @@ static const keyword_t sql_keywords[] = { {"||", '&'}, {"~*", 'o'}, }; -static const size_t sql_keywords_sz = 9050; +static const size_t sql_keywords_sz = 9051; #endif diff --git a/deps/libinjection/sqlparse_data.json b/deps/libinjection/sqlparse_data.json index e62427a2c..f8e4d66b8 100644 --- a/deps/libinjection/sqlparse_data.json +++ b/deps/libinjection/sqlparse_data.json @@ -9023,6 +9023,7 @@ "RIGHT OUTER": "k", "RIGHT OUTER JOIN": "k", "RLIKE": "o", + "ROLLBACK": "T", "ROUND": "f", "ROW": "f", "ROW_COUNT": "f", diff --git a/deps/libinjection/sqlparse_map.py b/deps/libinjection/sqlparse_map.py index d79530b07..bd670b09e 100755 --- a/deps/libinjection/sqlparse_map.py +++ b/deps/libinjection/sqlparse_map.py @@ -822,6 +822,7 @@ KEYWORDS = { # needs review 'RIGHT' : 'n', 'RLIKE' : 'o', +'ROLLBACK' : 'T', 'ROUND' : 'f', 'ROW' : 'f', 'ROW_COUNT' : 'f', diff --git a/lib/Query_Processor.cpp b/lib/Query_Processor.cpp index 6269cde1b..0f39d257a 100644 --- a/lib/Query_Processor.cpp +++ b/lib/Query_Processor.cpp @@ -987,6 +987,12 @@ enum MYSQL_COM_QUERY_command Query_Processor::__query_parser_command_type(void * } return MYSQL_COM_QUERY_UNKNOWN; break; + case 'R': + if (!strcasecmp("ROLLBACK",qp->sf.current->val)) { // ROLLBACK + return MYSQL_COM_QUERY_ROLLBACK; + } + return MYSQL_COM_QUERY_UNKNOWN; + break; case 'S': if (!strcasecmp("SELECT",qp->sf.current->val)) { // SELECT return MYSQL_COM_QUERY_SELECT;