C言語なら俺に聞け(入門編)Part 59
■ このスレッドは過去ログ倉庫に格納されています
0328デフォルトの名無しさん
2010/01/18(月) 22:01:42// buffer overflowは無視している文字列置き換え関数
void
replace(char *buf, char *pre, char *aft)
{
char *p;
p = strstr(buf, pre);
if (p){
char *p_2 = p + strlen(pre);
replace(p_2, pre, aft);
memmove(p + strlen(aft), p_2, strlen(p_2)+1);
memcpy(p, aft, strlen(aft));
}
}
int
main(void)
{
char buf[1024] = "C:\\programfile\\LOG";
replace(buf, "LOG", "RESULT");
printf("%s\n", buf);
return 0;
}
というソースを以前見たんですがバッファオーバーフローはどうすれば避けられますか?
■ このスレッドは過去ログ倉庫に格納されています