CWE ID: 562
Name: Return of Stack Variable Address
Eine Funktion gibt die Adresse einer Stack-Variable zurück, was zu unbeabsichtigtem Programmverhalten führen kann, typischerweise in Form eines Crashes.
Da lokale Variablen auf dem Stack allokiert werden, gibt eine Funktion, die einen Pointer zu einer lokalen Variable zurückgibt, eine Stack-Adresse zurück. Ein nachfolgender Funktionsaufruf wird wahrscheinlich dieselbe Stack-Adresse wiederverwenden, wodurch der Wert des Pointers überschrieben wird. Dieser Pointer entspricht dann nicht mehr der ursprünglichen Variable, da der Stack Frame einer Funktion bei der Rückkehr ungültig wird. Im besten Fall führt dies zu einer unerwarteten Änderung des Pointer-Werts. In vielen Fällen führt es dazu, dass das Programm beim nächsten Versuch, den Pointer zu dereferenzieren, abstürzt.
Effektivität: Unknown
Beschreibung: Nutzen Sie Static-Analysis-Tools, um die Rückgabe der Adresse einer Stack-Variable zu identifizieren.