Rust 1.98.1 explained: 2026 vtable miscompile and null pointer

Official Rust blog on 3 September: 1.98.1 patches a 1.98.0 vtable miscompile. A null sat where a function pointer belongs. Public tracker: rust-lang/rust#161441.

On 3 September 2026 the Rust Release Team published point release 1.98.1 on the official Rust blog. The page names one fix: a miscompilation in vtable generation. Official upgrade text: rustup update stable.

The search term is the point-release number. The blog says: in Rust 1.98.0, in some circumstances, rustc put a null pointer where a function pointer belongs in a trait-object vtable. That is undefined behavior in the emitted code. This article only checks that blog and the public issue number. It is not a rustup handbook.

Official blog1.98.0 vtableIssue 161441

What the public notes print

1.98.1
Point release
9/3
Blog date
161441
Public issue
ItemWhat they wroteLimit
BugA null where a function pointer should be in the vtableOnly in some circumstances
EffectUndefined behavior in the emitted codeSometimes “just” a segfault after the null load
Upgraderustup update stableOne official sentence, not a tutorial
TrackerRELEASES.md points at rust-lang/rust#161441Not a language-feature drop

How to read this release

  1. 1

    This is a 1.98.0 patch

    The official page puts the miscompile in its only feature section. Do not treat it as a re-ship of 1.98.0 language items, or as a package manager changing language.

  2. 2

    The null sits where a function pointer belongs

    Official sentence: in some circumstances, rustc would incorrectly generate a trait object vtable with a null pointer where a function pointer should be.

  3. 3

    Undefined behavior is not only a crash

    Official text: in some cases this may “just” cause segfaults due to the null pointer being loaded, but it is possible for it to be justification for arbitrary effects (as is typical for UB).

  4. 4

    The public issue has a reproduce boundary

    Issue 161441 is titled rustc emits a vacant vtable slot for a callable boxed async service. The report says the same Rama source worked on 1.97.1 and crashed on 1.98.0.

What else is public

01

Crash signs sit in the issue

The public report says macOS printed SIGSEGV with pc=0. The generated caller loaded a Service method from vtable + 0x18 and branched to zero.

02

1.98.0’s date is not on this patch page

RELEASES.md on rust-lang/rust dates 1.98.0 to 2026-08-20 and 1.98.1 to 2026-09-03. The patch page does not re-list 1.98.0 language items.

03

The team still asks for beta / nightly testers

The blog says: to help test future releases, consider rustup default beta or nightly locally and in CI, and report bugs.

Limits

The official page does not date 1.98.2. Next step is blog.rust-lang.org/2026/09/03/Rust-1.98.1/. If you only needed a short meeting without another account wall, wbstorm is a browser room ID — see also create or join a room and whiteboard basics.

# Sources
# blog.rust-lang.org/2026/09/03/Rust-1.98.1/
# github.com/rust-lang/rust/issues/161441
# 2026-09-03
Is this a re-ship of 1.98.0 features?

No. This post is the vtable-miscompile point release. RELEASES.md dates 1.98.0 to 20 August.

Does it always segfault?

Official text: it may “just” segfault after the null load, but undefined behavior can also justify arbitrary effects.

Is this a product how-to?

No. This article only checks the 3 September Rust blog and the public issue. It is not a rustup handbook.

Create room