Rust 1.98.1 expliqué : mauvaise compilation vtable 2026

Blog officiel Rust le 3 septembre : 1.98.1 corrige une mauvaise compilation vtable de 1.98.0. Un nul à la place du pointeur de fonction. Suivi : rust-lang/rust#161441.

Le 3 septembre 2026, la Rust Release Team a publié la version de rustine 1.98.1 sur le blog officiel Rust. La page nomme une correction : une mauvaise compilation de la génération de vtable. Texte officiel de mise à jour : rustup update stable.

Le terme de recherche est le numéro de rustine. Le blog dit : dans Rust 1.98.0, rustc a parfois placé un pointeur nul là où un pointeur de fonction devrait se trouver dans une vtable d’objet de trait. C’est un comportement indéfini dans le code émis. Cet article ne vérifie que ce blog et le numéro d’issue public. Ce n’est pas un guide rustup.

Blog officielvtable 1.98.0Issue 161441

Ce que les textes publics impriment

1.98.1
Version de rustine
9/3
Date du blog
161441
Issue publique
PointTexte publicLimite
BogueUn nul à la place d’un pointeur de fonction dans la vtableSeulement dans certains cas
EffetComportement indéfini dans le code émisParfois « seulement » un segfault après le chargement du nul
Mise à jourrustup update stableUne phrase officielle, pas un tutoriel
SuiviRELEASES.md pointe vers rust-lang/rust#161441Pas une livraison de langage

Lire cette version

  1. 1

    C’est une rustine 1.98.0

    La page officielle place la mauvaise compilation dans sa seule section fonctionnelle. Ce n’est pas un nouvel envoi des items de langage de 1.98.0, ni un gestionnaire de paquets qui change de langage.

  2. 2

    Le nul est à la place du pointeur de fonction

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

  3. 3

    Le comportement indéfini n’est pas qu’un plantage

    Texte officiel : cela peut « seulement » provoquer des segfaults après le chargement du nul, mais cela peut aussi justifier des effets arbitraires — typique de l’UB.

  4. 4

    L’issue publique a une frontière de repro

    L’issue 161441 s’intitule rustc emits a vacant vtable slot for a callable boxed async service. Le rapport dit que la même source Rama marchait en 1.97.1 et plantait en 1.98.0.

Le reste du public

01

Les signes de plantage sont dans l’issue

Le rapport public dit que macOS a affiché SIGSEGV avec pc=0. L’appelant généré chargeait une méthode Service depuis vtable + 0x18 et branchait vers zéro.

02

La date de 1.98.0 n’est pas sur cette page de rustine

RELEASES.md de rust-lang/rust date 1.98.0 au 2026-08-20 et 1.98.1 au 2026-09-03. La page de rustine ne reliste pas les items de langage de 1.98.0.

03

L’équipe demande encore des testeurs beta / nightly

Le blog dit : pour aider à tester les versions suivantes, utiliser rustup default beta ou nightly en local et en CI, et signaler les bogues.

Limites

La page officielle ne date pas 1.98.2. Ensuite : blog.rust-lang.org/2026/09/03/Rust-1.98.1/. Pour une courte réunion sans mur de compte, wbstorm est un identifiant de salle — voir créer ou rejoindre une salle et bases du tableau.

# Sources
# blog.rust-lang.org/2026/09/03/Rust-1.98.1/
# github.com/rust-lang/rust/issues/161441
# 2026-09-03
Est-ce un nouvel envoi des fonctions 1.98.0 ?

Non. Ce billet est la rustine de mauvaise compilation vtable. RELEASES.md date 1.98.0 au 20 août.

Y a-t-il toujours un segfault ?

Texte officiel : cela peut « seulement » segfault après le chargement du nul, mais un comportement indéfini peut aussi justifier des effets arbitraires.

Est-ce un mode d’emploi produit ?

Non. Cet article ne vérifie que le blog Rust du 3 septembre et l’issue publique. Ce n’est pas un guide rustup.

Démarrer une réunion gratuite