LWJGL / lwjgl3

LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.
https://www.lwjgl.org
BSD 3-Clause "New" or "Revised" License
4.75k stars 635 forks source link

Incorrect buffer size check in meshopt_spatialSortRemap function #981

Closed HamiltonHuaji closed 3 months ago

HamiltonHuaji commented 4 months ago

Version

3.3.4 (snapshot)

Platform

Linux x64, Linux arm64, Linux arm32, macOS x64, macOS arm64, Windows x64, Windows x86, Windows arm64

JDK

Not Applicable

Module

Meshopt

Bug description

The meshopt_spatialSortRemap function, as well as potentially other functions in the meshopt module of the lwjgl library has an incorrect buffer size check. According to the documentation, the destination buffer is expected to have enough space. However, the implementation calculates the vertex_count variable based on the remaining space in the destination buffer and checks the remaining space of vertex_positions buffer. The correct implementation should calculate vertex_count based on vertex_positions.remaining() and check the remaining space of the destination buffer.

Stacktrace or crash log output

No response