소스 검색

D3D12 GPU: Prevent reading out of bounds when uploading textures.

When the upload needs realignment, a new buffer is created to do the
upload, and the source data is copied to the new buffer. This commit
fixes the issue where the memcopy can read off the end of the source
buffer since it is reading based on destination pitch instead of source
pitch.
Chris Genova 5 달 전
부모
커밋
6a01d6e7d3
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/gpu/d3d12/SDL_gpu_d3d12.c

+ 1 - 1
src/gpu/d3d12/SDL_gpu_d3d12.c

@@ -5941,7 +5941,7 @@ static void D3D12_UploadToTexture(
                 SDL_memcpy(
                     temporaryBuffer->mapPointer + (sliceIndex * rowsPerSlice) + (rowIndex * alignedRowPitch),
                     transferBufferContainer->activeBuffer->mapPointer + source->offset + (sliceIndex * bytesPerSlice) + (rowIndex * rowPitch),
-                    alignedRowPitch);
+                    rowPitch);
             }
             Uint32 offset = source->offset + (sliceIndex * bytesPerSlice) + ((rowsPerSlice - 1) * rowPitch);
             SDL_memcpy(