从文件中读取整数值时,覆盖率检查显示以下错误

调用函数“fread”会污染参数“readval”

//coverity note: Calling function "fread" taints argument "readval".
if(fread(&readval, sizeof(int), 1, fp) < 1) {
    return;
} else {
    //coverity note: Passing tainted variable "readval" to a tainted sink.
    f1(&readval);
}

如何处理这个错误?
我需要对“readval”执行哪些健全性检查,以确保它没有损坏。

最佳答案

所以问题是您使用的是受污染的值;)

更详细地说,readval由外部数据设置一次,然后有可能用作fseek的参数。此参数可能会使您超出文件末尾,并导致程序崩溃。

您需要进行一些检查,以确保您没有离开文件的结尾。

关于fread - 如何处理fread中的Coverity错误TAINTED_SCALAR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24772247/

10-10 14:07