ファイル操作関数で Coverity ツールを実行すると、次のエラーが発生します。
以下に示すように、問題の変数をエラー メッセージに示されている行番号に渡す前に、snprintf() を使用しています。そのsnprintf()の一部として、文字列のサニタイズを行う必要があると思います。しかし、それでも警告が表示されます。
Error:TAINTED_STRING (TAINTED string "fn" was passed to a tainted string sink content.) [coverity]
char fn[100]; int id = 0;
char* id_str = getenv("ID");
if (id_str) {
id = atoi(id_str);
}
memset(fn, '\0', sizeof(fn));
snprintf(fn, 100, LOG_FILE, id);
if(fn[100-1] != '\0') {
fn[100-1] = '\0';
}
log_fp = fopen (fn, "a");
どんな助けでも大歓迎です。