URL: https://www.overclockers.at/coding-stuff/c_probs_mit_zeigern_50238/page_3 - zur Vollversion wechseln!
statt sprintf wäre z.B. snprintf besser.
gets hat mit längern zeilen als der buffer kein problem, der schneidets halt ab, nur bei scanf hast a problem damit 
bei gets kann man wirklich nicht angeben, wie lang der puffer ist, aber drum nimmt man ja auch fgets.
du wirst es nicht glauben, auch mit printf kann man recht leicht sicherheitslücken produzieren (abgesehen vom puffer überschreiben, das schon angesprochen wurde). nämlich dann, wenn du einen vom user eingegebenen string als erstes argument (format string) verwendest. da gibt's nämlich böse dinge, mit denen man integers im speicher überschreiben kann.
es ist zwar eine mühsame sache, so einen exploit aufzubauen, aber es gibt auch hierfür genug beispiele.
Du kannst für so ziemlich alles exploits aufbauen, überall gibt es sicherheitslücken, nur printf wird weit verwendet, auch in der UNIX Welt, aber wahrscheinlich irren sich die alle, und nur ihr habt recht.....
Gegen die Verwendung von printf ist nichts zu sagen, solang der erste Parameter (format string) hardcoded ist.
Zitat von RingdingGegen die Verwendung von printf ist nichts zu sagen, solang der erste Parameter (format string) hardcoded ist.
jo, das ist eh klar. hab ich weiter oben eh schon geschrieben 
Des ist aber dann sache vom Programmierer und nicht vom C würd ich mal sagen.
Und Format strings nicht hardcoded machen ist sowieso oberkill, außer du baust eine saubere Überprüfung ein.
Zitat von Vir@sUnd Format strings nicht hardcoded machen ist sowieso oberkill, außer du baust eine saubere Überprüfung ein.

Programmuebersetzungen sind soundso ein Graus. Fuer die Reihenfolgenvertauschung gibt's FormatMessage.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026