0031292: Data Exchange - SIGSEGV on reading STEP file with references to invalid...
authormsv <msv@opencascade.com>
Fri, 10 Jan 2020 17:59:51 +0000 (20:59 +0300)
committerbugmaster <bugmaster@opencascade.com>
Mon, 13 Jan 2020 13:16:48 +0000 (16:16 +0300)
commitef59b5e064913bd32e4a2b66a002cbcae7fa90a4
tree769f50239b85af14b7d8714b27aceb2ae2083176
parent0c061f3d9de6938fb5dd94a1567dea3127d611b1
0031292: Data Exchange - SIGSEGV on reading STEP file with references to invalid entities

Changes:

- in StepData_StepReaderData::ReadEntity, make sure that entity handle is not null before calling IsKind() of it.

- in StepData_StepReaderData::SetEntityNumbers, do not invert the sign of entity number of referenced parameter if the second pass is not required. Otherwise, the number -1 (obviously invalid) becomes 1 (invalid, but not obviously) without further correction of it.

- in StepData_UndefinedEntity::ReadRecord, consider the case when the entity number is positive but refers to non-existing entity. In this case literal value will be used instead of null entity for the problematic parameter.
src/StepData/StepData_StepReaderData.cxx
src/StepData/StepData_UndefinedEntity.cxx
tests/bugs/step/bug31292 [new file with mode: 0644]