mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 04:43:03 +01:00
Fixed two issues for the case of non-authorized op_connect_request:
1) Missing error reporting which makes the client to stall forever 2) CORE-2563: Possible DoS attack using the malformed packet sent into the connection port
This commit is contained in:
parent
c02ba0687a
commit
01fbf3cc1f
@ -1016,6 +1016,13 @@ static void aux_request( rem_port* port, P_REQ * request, PACKET* send)
|
||||
port->port_status_vector = status_vector;
|
||||
success(status_vector);
|
||||
|
||||
RDB rdb = port->port_context;
|
||||
if (bad_db(status_vector, rdb))
|
||||
{
|
||||
port->send_response(send, 0, 0, status_vector);
|
||||
return;
|
||||
}
|
||||
|
||||
// This buffer is used by INET and WNET transports
|
||||
// to return the server identification string
|
||||
UCHAR buffer[BUFFER_TINY];
|
||||
@ -1023,12 +1030,6 @@ static void aux_request( rem_port* port, P_REQ * request, PACKET* send)
|
||||
send->p_resp.p_resp_data.cstr_address = buffer;
|
||||
|
||||
rem_port* aux_port = port->request(send);
|
||||
RDB rdb = port->port_context;
|
||||
if (bad_db(status_vector, rdb))
|
||||
{
|
||||
// who has any idea what else to do with such attempt
|
||||
return;
|
||||
}
|
||||
|
||||
port->send_response(send, rdb->rdb_id,
|
||||
send->p_resp.p_resp_data.cstr_length, status_vector);
|
||||
|
Loading…
Reference in New Issue
Block a user