Skip to content

AV when lock manager settings is misconfigured #8885

@hvlad

Description

@hvlad

It is possible to set lock manager params in firebird.conf (databases.conf) to overflow initial memory segment during initialization.

For example, set in firebird.conf

LockMemSize = 256K
LockHashSlots = 65521

and connect to any database.

Call stack

engine13.dll!Jrd::LockManager::initialize Line 2329
	at fb50\src\lock\lock.cpp(2329)
engine13.dll!Firebird::SharedMemoryBase::SharedMemoryBase Line 1885
	at fb50\src\common\isc_sync.cpp(1885)
[Inline Frame] engine13.dll!Firebird::SharedMemory<lhb>::{ctor} Line 344
	at fb50\src\common\isc_s_proto.h(344)
engine13.dll!Jrd::LockManager::init_shared_file Line 302
	at fb50\src\lock\lock.cpp(302)
engine13.dll!Jrd::LockManager::LockManager Line 188
	at fb50\src\lock\lock.cpp(188)
engine13.dll!Jrd::Database::GlobalObjectHolder::getLockManager Line 697
	at fb50\src\jrd\Database.cpp(697)
[Inline Frame] engine13.dll!Jrd::Database::lockManager Line 689
	at fb50\src\jrd\Database.h(689)
engine13.dll!LCK_init Line 637
	at fb50\src\jrd\lck.cpp(637)
engine13.dll!Jrd::JProvider::internalAttach Line 1818
	at fb50\src\jrd\jrd.cpp(1818)
engine13.dll!Jrd::JProvider::attachDatabase Line 1624
	at fb50\src\jrd\jrd.cpp(1624)

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions