SIMD-0558 schreibt die Reihenfolge der Zeigerpruefung aus
Ein Commit im Repository der Solana-Verbesserungsdokumente aktualisierte am 23. September 2026 den Vorschlag SIMD-0558 zum Leader-Info-Syscall: Die Zeigerpruefung wird beschrieben und die Compute-Unit-Kosten werden angepasst. Die Aenderung fuegt 52 Zeilen hinzu und entfernt 13 in proposals/0558-leader-info-syscall.md.
Die Mechanik steht nun ausgeschrieben da. result ist eine virtuelle Adresse; bei Erfolg schreibt der Syscall 128 Byte LeaderInfo nach [result, result + 128). Compute Units werden zuerst verbraucht — uebersteigt das das Budget, bricht die virtuelle Maschine ab, und es wird kein Byte geschrieben.
Andernfalls bricht der Syscall die VM ab, ohne zum Aufrufer zurueckzukehren und ohne LeaderInfo zu schreiben, wenn eines der Folgenden zutrifft — in dieser Reihenfolge geprueft:
- Das Programm wurde von einem Loader geladen, der keine ausgerichteten Zugriffe erzwingt —
SyscallError::UnalignedPointer, dieselbe Pruefung wie bei den Sysvar-Gettern.LeaderInfoist ein#[repr(C)]-Struct aus vier Pubkeys und hat damit die Ausrichtung 1; erzwingt der Loader die Ausrichtung, wird eine Adresse nicht wegen fehlender Ausrichtung abgelehnt. result >= 0x4_0000_0000(MM_INPUT_START, die Eingaberegion) —SyscallError::InvalidPointer; ein Ziel in der Eingaberegion wird direkt abgelehnt, genau wie bei einem Sysvar-Getter.

Was daran bemerkenswert ist
«In dieser Reihenfolge geprueft» ist der Satz, der daraus eine Spezifikation macht und keine Beschreibung. Wenn zwei Fehlerbedingungen zugleich zutreffen koennen, ist beobachtbar, welchen Fehler ein Programm erhaelt — und alles Beobachtbare muessen Implementierungen gleich handhaben, sonst erzeugt dieselbe Transaktion auf verschiedenen Validatoren verschiedene Fehler. Die Reihenfolge festzuschreiben verhindert, dass daraus spaeter eine Konsensfrage wird.
Compute Units vor der Pruefung abzurechnen ist die zweite bewusste Wahl. Ein Programm, das einen schlechten Zeiger uebergibt, zahlt trotzdem — damit entfaellt jeder Anreiz, den Syscall billig nach Informationen ueber den Adressraum abzutasten. Gebuehr zuerst ist die uebliche Verteidigung dagegen, Fehlercodes als Orakel zu benutzen.
Die Anmerkung zur Ausrichtung ist eine kleine Ehrlichkeit, die Nachahmung verdient: Da LeaderInfo aus vier Pubkeys mit Ausrichtung 1 besteht, schuetzt die Pruefung nicht das Struct — sie ist vom Verhalten der Sysvar-Getter geerbt, und der Vorschlag sagt das, statt eine Begruendung zu erfinden.
📌 Das ist ein Vorschlag in Ueberarbeitung, kein aktiviertes Feature. Die relevante Groesse fuer alle, die ihn verfolgen, ist die Compute-Unit-Zahl, die dieser Commit geaendert hat — sie entscheidet, ob der Syscall praktisch nutzbar ist.