mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 04:03:03 +01:00
This should fix CORE-4676: Crash on unexpected client disconnection with opened transaction.
This commit is contained in:
parent
1cb23c7b92
commit
7fe133aa95
@ -5479,6 +5479,13 @@ static void release_attachment(thread_db* tdbb, Attachment* attachment)
|
||||
if (dbb->dbb_event_mgr && attachment->att_event_session)
|
||||
dbb->dbb_event_mgr->deleteSession(attachment->att_event_session);
|
||||
|
||||
if (attachment->att_dsql_instance)
|
||||
{
|
||||
MemoryPool* const pool = &attachment->att_dsql_instance->dbb_pool;
|
||||
delete attachment->att_dsql_instance;
|
||||
dbb->deletePool(pool);
|
||||
}
|
||||
|
||||
// CMP_release() advances the pointer before the deallocation.
|
||||
jrd_req* request;
|
||||
while ( (request = attachment->att_requests) )
|
||||
@ -5521,13 +5528,6 @@ static void release_attachment(thread_db* tdbb, Attachment* attachment)
|
||||
|
||||
delete attachment->att_compatibility_table;
|
||||
|
||||
if (attachment->att_dsql_instance)
|
||||
{
|
||||
MemoryPool* const pool = &attachment->att_dsql_instance->dbb_pool;
|
||||
delete attachment->att_dsql_instance;
|
||||
dbb->deletePool(pool);
|
||||
}
|
||||
|
||||
SCL_release_all(attachment->att_security_classes);
|
||||
|
||||
delete attachment->att_user;
|
||||
|
Loading…
Reference in New Issue
Block a user