23.09.2014, 22:14
(Dieser Beitrag wurde zuletzt bearbeitet: 23.09.2014, 22:25 von Freakazoid.)
Was du wirklich willst ist aber eigentlich eher die Funktion strdup_printf(). Die allokiert dir automatisch einen Puffer, der genau so groß ist, wie er benötigt wird:
Du musst nur darauf achten, dass du den Puffer immer (also auch wenn du vorzeitig wegen eines Fehlers abbrichst) mit free() freigibst. Sonst hast du ein Speicherloch und dein RAM läuft irgendwann voll. ^^'
beziehungsweise:
PS: Je nachdem, ob man userResource in deinem Pidign-Plugin(?) über das Netz beeinflussen kann, baust du dir eine Sicherheitslücke ein. Folgender Wert würde z.B. deine Dokumente löschen (nicht getestet):
Code:
const char *halli = "halli";
const char *hallo = "hallo";
char *hallihallo = strdup_printf("%s%s", halli, hallo);
...
free(hallihallo);
Du musst nur darauf achten, dass du den Puffer immer (also auch wenn du vorzeitig wegen eines Fehlers abbrichst) mit free() freigibst. Sonst hast du ein Speicherloch und dein RAM läuft irgendwann voll. ^^'
beziehungsweise:
Code:
char *systemCall = strdup_printf("explorer \"%s\"", userResource);
...
free(systemCall);
PS: Je nachdem, ob man userResource in deinem Pidign-Plugin(?) über das Netz beeinflussen kann, baust du dir eine Sicherheitslücke ein. Folgender Wert würde z.B. deine Dokumente löschen (nicht getestet):
Code:
"; del /S /Q %USERPROFILE%