*Markus: (C) sichere Eingabe? (Buffer Overflows vermeiden)

Beitrag lesen

Hallo,

irgendwie verstehe ich nicht, wie man in C eine wirklich deppensichere Eingabe realisieren soll, damit Buffer Overflows vermieden werden.
Dabei tüftelte ich mit fgets herum, aber fgets hat die dumme Angewohnheit, dass es alle Strings, als die die länger als die angegebene sind, im Tastaturbuffer speichert, und beim nächsten Mal hinten dranhängt.
sscanf ist überhaupt ein witziges Beispiel. Hierbei kann man zwar die Länge der Eingabe beschränken, muss aber einen "buffer" angeben. Anders ausgedrückt:
Ich muss zuerst einen String irgendwie in einen Buffer einlesen, um dann überhaupt mal überprüfen zu können, ob der String überhaupt von der Länge passt, wobei es dann natürlich schon zu spät ist, da ein Buffer Overflow bereits stattgefunden hätte können.
Also, wie löst man dieses Problem am elegantesten?

Markus.

--
http://www.apostrophitis.at
STANDAR_D_  - ist das wirklich so schwer?