Add safety checks to material constants binding code to prevent invalid memory access

This commit is contained in:
Wojtek Figat
2021-07-06 15:41:16 +02:00
parent 9f9d946d69
commit a165b4aa79
14 changed files with 85 additions and 55 deletions

View File

@@ -162,7 +162,7 @@ void GPUParticles::Execute(GPUContext* context, ParticleEmitter* emitter, Partic
// Setup parameters
MaterialParameter::BindMeta bindMeta;
bindMeta.Context = context;
bindMeta.Constants = hasCB ? _cbData.Get() + sizeof(GPUParticlesData) : nullptr;
bindMeta.Constants = hasCB ? Span<byte>(_cbData.Get() + sizeof(GPUParticlesData), _cbData.Count() - sizeof(GPUParticlesData)) : Span<byte>(nullptr, 0);
bindMeta.Input = nullptr;
if (viewTask)
{