3

Xcode 4.6 有一个标记为“Misuse of Keychain Services API”的构建设置,也就是CLANG_ANALYZER_SECURITY_KEYCHAIN_API. 快速帮助没有帮助:

检查钥匙串服务 API 的滥用。

那么,Clang 静态分析器在打开时会寻找什么样的“误用”?

4

2 回答 2

6

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

如果您对更多细节感兴趣,可以在LLVM SVN 存储库中查看此检查器的实现。

于 2013-03-02T05:03:37.787 回答
3

源代码中的注释说明:

// 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.

它似乎没有做任何比这更花哨的事情。

于 2013-03-02T05:02:57.880 回答