gpt4 book ai didi

c - 使用文件中的 fscanf 来 bool 变量和覆盖运行

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:29 24 4
gpt4 key购买 nike

在我的项目中,我目前正在使用 fscanf(fp, "%d ",&deviceId)) 其中 fp 是文件指针,deviceId 是一个 BOOL 变量。一旦我运行覆盖工具(静态分析),我就会收到如下所示的警告:

CID 11375 (#1 of 1): Calling risky function (SECURE_CODING) secure_coding: [VERY RISKY]. Using "fscanf" can cause a buffer overflow when done incorrectly. fscanf() assumes an arbitrarily large string, so callers must use correct precision specifiers or never use fscanf(). Use correct precision specifiers or do your own parsing.

有没有办法解决这个缺陷,因为我无法更改 fscanf 的使用。任何格式说明符都可以吗?

最佳答案

静态分析器总是会发出大量错误警告。在这种情况下,出于警告中提到的原因,您的特定静态分析器可能会根据某些禁止使用 fscanf 的给定代码标准检查代码,无论其输入是什么。

您必须知道您正在检查的代码标准以及原因。您显然已决定应用禁止 fscanf 的编码标准,但您坚持使用该功能。

所以没有其他人可以为您解决这个问题。如果您的编码标准允许偏差,您需要创建一个偏离该规则的偏差,或者您必须停止使用 fscanf,或者您必须选择对您的应用程序有意义的编码标准/工具。

关于c - 使用文件中的 fscanf 来 bool 变量和覆盖运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26016593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com