Highlights
Memory Safety: 3 prior fixes. Scrutinize any change in this area.
src/gl.rs: most-fixed (3 issues). Treat as high-risk during review.
3 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Memory Safety: Improper buffer-size validation and incorrect assumptions about Rust slice lifetimes when passing parameters to FFI functions (such as GetUniformiv and query APIs) can result in out-of-bounds writes and system instability. Correcting these requires enforcing the unsafe keyword on API boundaries to delegate responsibility to the caller or verifying caller-allocated buffer dimensions.
Memory Safety: Use-After-Free (UAF) vulnerabilities occur when temporary CString pointers are passed directly to FFI boundaries (like GetUniformLocation and GetAttribLocation) without binding the underlying CString to a local variable, causing the allocated memory to be reclaimed prematurely.