Xcode 4.6 有一个标记为“Misuse of Keychain Services API”的构建设置,也就是CLANG_ANALYZER_SECURITY_KEYCHAIN_API
. 快速帮助没有帮助:
检查钥匙串服务 API 的滥用。
那么,Clang 静态分析器在打开时会寻找什么样的“误用”?
Xcode 4.6 有一个标记为“Misuse of Keychain Services API”的构建设置,也就是CLANG_ANALYZER_SECURITY_KEYCHAIN_API
. 快速帮助没有帮助:
检查钥匙串服务 API 的滥用。
那么,Clang 静态分析器在打开时会寻找什么样的“误用”?
它旨在确保调用方以正确的方式释放 Keychain Services API 中函数分配的内存。例如,SecKeychainFindGenericPassword
通过输出参数返回密码数据。调用者需要通过SecKeychainItemFreeContent
而不是替代 API(如free
. 未能使用正确的 API 可能会将敏感数据(例如密码)留在内存中。
如果您对更多细节感兴趣,可以在LLVM SVN 存储库中查看此检查器的实现。
源代码中的注释说明:
// 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.
它似乎没有做任何比这更花哨的事情。