Xcode “;滥用钥匙链服务API”;分析发现?

Xcode “;滥用钥匙链服务API”;分析发现?,xcode,clang,keychain,clang-static-analyzer,Xcode,Clang,Keychain,Clang Static Analyzer,Xcode 4.6有一个名为“滥用钥匙链服务API”的构建设置,也称为“CLANG\u ANALYZER\u SECURITY\u Keychain\u API。快速帮助是没有帮助的: 检查钥匙链服务API的滥用情况 那么,当此选项打开时,Clang Static Analyzer会寻找哪种类型的“误用”呢?中的注释解释如下: // This checker flags misuses of KeyChainAPI. In particular, the password data // all

Xcode 4.6有一个名为“滥用钥匙链服务API”的构建设置,也称为“CLANG\u ANALYZER\u SECURITY\u Keychain\u API。快速帮助是没有帮助的:

检查钥匙链服务API的滥用情况

那么,当此选项打开时,Clang Static Analyzer会寻找哪种类型的“误用”呢?

中的注释解释如下:

// This checker flags misuses of KeyChainAPI. In particular, the password data
// allocated/returned by SecKeychainItemCopyContent,
// SecKeychainFindGenericPassword, SecKeychainFindInternetPassword functions has
// to be freed using a call to SecKeychainItemFreeContent.

它似乎没有做任何比这更奇特的事情。

它旨在确保调用方以正确的方式释放由Keychain Services API中的函数分配的内存。例如,
SecKeychainFindGenericPassword
通过输出参数返回密码数据。调用方需要通过
SecKeychainItemFreeContent
而不是像
free
这样的替代API来解除分配此数据。未能使用正确的API可能会在内存中留下敏感数据(如密码)


如果您有兴趣了解更多详细信息,您可以在中看到此检查器的实现。

我在[Static Analyzer-Issues-Security]下的BuildSettings中看到了这一点,但在它前面还有一个选项是和否。我不清楚它的实际含义。。e、 g有书面的“滥用钥匙链服务API”,在它前面我有一个选择是和否。这是否意味着如果我将其设置为否,它将不会滥用或其他什么。看起来很荒谬。是否有帮助?该设置控制是否启用特定的分析仪检查。