c - getenv 返回受污染的字符串内容
问题描述
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 相信它不再受到污染的任何想法?
解决方案
我遇到过类似的问题。以下对我有用:
- 确认环境变量已正确保存在您的系统中(对于位于系统>高级设置>环境变量中的窗口)
- 重新启动您用来运行代码的文本编辑器/IDE/Jupyter Notebook。
推荐阅读
- java - Java:为了连接两台不同的计算机,服务器的IP地址是什么
- java - AWT Robot 类构造函数错误
- apache-camel - 如何只跑一次骆驼路线
- javascript - 从 nodeJs 上的字体标签中提取文本
- javascript - 滑块值添加到日期
- python - 使用 Pyglet 在 on_mouse_press 上插入文本
- javascript - 在线或外部的 CSS 更好
- java - Java在数字末尾添加“0”
- python - 什么是 pandas dataframe.ne 方法以及为什么使用它?
- python - Python 中内部 hash() 函数的复杂性