Disable prepared statement execution in dbfwfilter
The dbfwfilter doesn't parse prepared statements for all rules which requires that they are disabled.
This commit is contained in:
parent
3793f685ac
commit
fed61fde98
@ -2193,6 +2193,13 @@ routeQuery(FILTER *instance, void *session, GWBUF *queue)
|
||||
int rval = 0;
|
||||
ss_dassert(dcb && dcb->session);
|
||||
|
||||
uint32_t type = 0;
|
||||
|
||||
if (modutil_is_SQL(queue) || modutil_is_SQL_prepare(queue))
|
||||
{
|
||||
type = qc_get_type(queue);
|
||||
}
|
||||
|
||||
if (modutil_is_SQL(queue) && modutil_count_statements(queue) > 1)
|
||||
{
|
||||
GWBUF* err = gen_dummy_error(my_session, "This filter does not support "
|
||||
@ -2202,6 +2209,17 @@ routeQuery(FILTER *instance, void *session, GWBUF *queue)
|
||||
my_session->errmsg = NULL;
|
||||
rval = dcb->func.write(dcb, err);
|
||||
}
|
||||
else if (QUERY_IS_TYPE(type, QUERY_TYPE_PREPARE_STMT) ||
|
||||
QUERY_IS_TYPE(type, QUERY_TYPE_PREPARE_NAMED_STMT) ||
|
||||
modutil_is_SQL_prepare(queue))
|
||||
{
|
||||
GWBUF* err = gen_dummy_error(my_session, "This filter does not support "
|
||||
"prepared statements.");
|
||||
gwbuf_free(queue);
|
||||
free(my_session->errmsg);
|
||||
my_session->errmsg = NULL;
|
||||
rval = dcb->func.write(dcb, err);
|
||||
}
|
||||
else
|
||||
{
|
||||
USER *user = find_user_data(my_instance->htable, dcb->user, dcb->remote);
|
||||
|
Loading…
x
Reference in New Issue
Block a user