Rust 1.98.1 is a small point release with a large correctness reason to upgrade: it fixes a compiler regression that could put a null function pointer into a trait-object vtable. Correct source could then become a crashing binary—or, more generally, execute with undefined behavior.
What changed
The regression was introduced in Rust 1.98.0. Under some combinations of trait objects, async code, and predicates the compiler considered impossible, rustc could leave a vtable method slot empty instead of emitting the required function. The public reproduction used safe Rust and dispatched through the null entry, producing a segmentation fault.
The practical consequence
Projects on the 1.98 stable toolchain should update to 1.98.1 and rebuild artifacts produced with 1.98.0. Updating the compiler alone cannot repair an already miscompiled executable or library. Teams that pinned 1.98.0 in CI, containers, or release workflows should change the pin and regenerate release binaries.
Limits of the finding
The Rust project describes the trigger only as occurring “in some circumstances,” and the public report found it in one complex async service path on Apple silicon while also seeing CI failures. The release announcement does not quantify how many projects are affected, assign a CVE, or report exploitation. This is a compiler-correctness failure with a potentially broad undefined-behavior consequence, not evidence that every Rust 1.98.0 binary is unsafe.
Benchmark status
No performance benchmark accompanied Rust 1.98.1. The relevant evidence is a minimized correctness regression and a fixed compiler release, not a vendor speed claim, and DrComps did not independently reproduce the compiler failure.