Skip to content

Segfault under OOM conditions #7370

@AlexPeshkoff

Description

@AlexPeshkoff

In case of OOM when creating new Statement uninitialized value (typically nullptr) remains in requests array. This causes segfault in Statement::release() code.

#0  0x00007ff9899e4af6 in EXE_unwind (tdbb=tdbb@entry=0x7fe9f5cd2f30, request=request@entry=0x0)
    at /usr/home/firebird/B4.0-release/src/jrd/exe.cpp:953
#1  0x00007ff9899e5111 in EXE_release (tdbb=tdbb@entry=0x7fe9f5cd2f30, request=0x0)
    at /usr/home/firebird/B4.0-release/src/jrd/exe.cpp:780
#2  0x00007ff9898f9bf8 in Jrd::JrdStatement::release (this=0x7ff48793d9e0, tdbb=0x7fe9f5cd2f30)
    at /usr/home/firebird/B4.0-release/src/jrd/JrdStatement.cpp:643
#3  0x00007ff989943c5a in Jrd::Routine::releaseStatement (this=this@entry=0x7ff285b574d0, tdbb=tdbb@entry=0x7fe9f5cd2f30)
    at /usr/home/firebird/B4.0-release/src/jrd/Routine.cpp:303

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions