Highlights
Memory Safety: 14 prior fixes. Scrutinize any change in this area.
glib/src/object.rs: most-fixed (4 issues). Treat as high-risk during review.
26 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: Using MaybeUninit::assume_init on uninitialized memory structures when the underlying C functions return errors or fail can introduce critical undefined behavior. Rust wrappers must validate return codes before assuming initialization has occurred.
Memory Corruption: Arithmetic errors in collections allocation can lead to buffer overflows and memory corruption. Specifically, operator precedence errors when calculating allocation sizes (such as omitting necessary space for a trailing NULL) or failing to check for integer overflows in slice capacity reservation can bypass safety barriers.
Type Confusion: Improperly casting GObject types or allowing safe implementations of casting traits (like IsA) can violate Rust's type guarantees, leading to unsound downcasting and invalid memory access.