Thema: GetUsernameEx

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.090 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: GetUsernameEx

  Alt 25. Nov 2014, 16:55
Zitat:
Delphi-Quellcode:
MAX_USERNAME_LENGTH = 256;
var
Buffer: Array[0..MAX_USERNAME_LENGTH] of WIDEChar;
Das Array ist 257 Zeichen lang, der API wird SizeOf übergeben, also 257*2 aka 514 Byte, was die API aber als Char interpretiert und somit ein Bufferoverrun vorprogrammiert ist. (bei Unicode)
Dann erwartet die API die Größe exkl. der #0, womit sie mochmal weitere 2 Byte überschreiben könnte.

Die API würde zwar nicht außerhalb des Puffers schreiben, aber wenn man ihr eine falsche Größe nennt, dann kann sie natürlich nichts dafür.
0..10 ... bei 11 bis 22 Chars würde es also Spaß machen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (25. Nov 2014 um 16:58 Uhr)
  Mit Zitat antworten Zitat