Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Strings verketten in Pidgin-Plugin mit Programmiersprache C
#3
Ich hab die Unterhaltung noch im rss-Feed:
Freakazoid schrieb:In C brauchst du halt Speicher, der groß genug ist, um die zusätzlichen Zeichen aufzunehmen. Der Speicher für "bla" ist genau 6 Byte groß (5 Zeichen + Nullbyte). strcat schreibt dahinter einfach weiter, wo entweder andere Dinge stehen oder wo kein weiterer Speicher ist. Wenn du Glück hast stürzt dein Programm einfach ab. Ansonsten provoziert es subtile Fehler, die an ganz anderer Stelle auftreten und nur schwer zu finden sind.


Faustregel: Benutze niemals strcat(). Die Funktion ist eine einzige Sicherheitslücke, weil sie die Größe des Zielspeichers nicht übergeben bekommt und daher nicht überprüfen kann, wo sie aufhören muss. strncat() wäre hier eine Alternative.

jamesv1994 schrieb:Ach Gottchen,
du hast natürlich Recht, ich danke dir vielmals!!

und ich habe strcat aus meinem Vokabular gestrichen, vielen Dank für diesen Hinweis!

Was sagst du dazu, fällt dir was "böses" auf?:


Code:
char* systemCall = (char*) malloc(1000);
*systemCall = *"";
char* userResource = (char*) purple_notify_user_info_entry_get_value(e);

strncat(systemCall, "explorer \"\\\\", strlen("explorer \" \\\\"));

strncat(systemCall, userResource, strlen(userResource));
strncat(systemCall, "\\C$\\\"", strlen("\\C$\\\""));

Freakazoid schrieb:Lies mal die manpage zu strncat. Das will wissen, wieviel noch Platz in dem Puffer nach dem String noch ist
Support im Chat einfach einen Nicknamen eingeben, captcha ausfüllen, auf connect drücken, Frage stellen und Geduld mitbringen bis jemand antwortet.
Zitieren


Nachrichten in diesem Thema
RE: Strings verketten in Pidgin-Plugin mit Programmiersprache C - von Dirtsa - 23.09.2014, 21:09

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste