8
0
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:
dimitr 2015-01-29 15:35:27 +00:00
parent 1cb23c7b92
commit 7fe133aa95

View File

@ -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;