Überlauf Ich brauche eine C-Funktion in meinem C++ Programm aufzunehmen beim Kompilieren des Codes mit g ++ erhalte ich die folgende Warnung:g ++ + strncat: könnte Zielpuffer
In function ‘char* strncat(char*, const char*, size_t)’,
inlined from ‘int get_usage(pid_t, pstat*)’ at src/getusage.c:24:
/usr/include/bits/string3.h:154: warning: call to
char* __builtin___strncat_chk(char*, const char*, long unsigned int,
long unsigned int) might overflow destination buffer
Code:
int pidof(const char* process_name){
char cmd[50] ="pidof ";
strncat(cmd, process_name, sizeof(cmd) - strlen(cmd) -1);
[..]
Wie kann ich diese Warnung loswerden?
Willkommen bei StackOverflow! Bitte schauen Sie sich die FAQ an: http://stackoverflow.com/faq –
ouh, dummer Fehler :) Ich habe den Fehler msg falsch gelesen, der Fehler war auf einer anderen strncat Verwendung, wo ich nur die Größe des Puffers als Größe übergeben Parameter => behoben :) – fho
Sie sollten std :: string verwenden. Sie sind einfacher zu benutzen. Unterstützung für die Verkettung eingebaut und sie sind auch sicherer zu verwenden. – bruno