Forum: Algorithmen, Datenstrukturen und Klassendesign
by jaenicke,
5. Mär 2022
:thumb:
Du kannst auch gern meinen Realnamen eintragen: Sebastian Jänicke
Noch ein Wort zur Fehlersuche:
Ich habe zwar manuell gesucht, indem ich den Weg des Arrays verfolgt habe und schlicht den Ausführungszeiger testweise über die Methode hinweg geschoben habe, so dass ich gemerkt habe, dass es daran liegt, und dann habe ich das Problem auch schon gesehen. Aber wäre der betreffende...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by jaenicke,
5. Mär 2022
Das Problem ist der Aufruf an ProtectBuffer hier:
procedure TDECPasswordHash.DoDone;
begin
inherited;
ProtectBuffer(FSalt, SizeOf(FSalt));
SetLength(FSalt, 0);
end;
Du übergibst FSalt statt FSalt und machst damit das Array kaputt. Da danach die Längenangabe des Arrays 0 ist, wird auch nichts mehr freigegeben.