Coverity声称getenv返回了一个受污染的字符串,而我已经用尽了我所有的想法来进行返回值检查。我查看了其他与我类似的问题,但是它们中的任何一个都不对我有用。
我尝试检查NULL的返回值,尝试了strdup,strncpy,memcpy,似乎没有什么可以使污染的字符串消失。
这是原始代码,其中没有不起作用的检查:
void my_func()
{
for(int port = 0; port < NUM_PORTS; port++) {
download_id_table(port,getenv("ID_FILE")); //tainted string from getenv
}
download_info(getenv("INFO_FILE")); //tainted string from getenv
//...
}
关于如何让Coverity相信它不再受到污染的任何想法?
答案 0 :(得分:0)
我遇到过类似的问题。 以下对我有用: