Skip to content

Commit 3d7adf1

Browse files
committed
Fix pointers out of range
1 parent 9dd9a63 commit 3d7adf1

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

XUSGRayTracing/RayTracing/XUSGAccelerationStructure_DX12.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,10 @@ void BottomLevelAS_DX12::SetGeometries(GeometryBuffer& geometries, uint32_t numG
290290
bufferSize += ommTriGeometriesSize;
291291

292292
geometries.resize(bufferSize);
293-
auto pTriangles = reinterpret_cast<D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC*>(&geometries[geometriesSize]);
294-
auto pOmmLinkage = reinterpret_cast<D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC*>(&geometries[geometriesSize + ommTriGeometriesSize]);
293+
const auto ommLinkageOffset = geometriesSize + ommTriGeometriesSize;
294+
auto pTriangles = geometriesSize < bufferSize ? reinterpret_cast<D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC*>(&geometries[geometriesSize]) : nullptr;
295+
auto pOmmLinkage = ommLinkageOffset < bufferSize ?
296+
reinterpret_cast<D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC*>(&geometries[ommLinkageOffset]) : nullptr;
295297
for (auto i = 0u; i < numGeometries; ++i)
296298
{
297299
const auto& geometry = pGeometries[i];

0 commit comments

Comments
 (0)