X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..07691282a056c4efea71e1e505527601e8cc166b:/OSX/libsecurity_keychain/lib/KCCursor.cpp diff --git a/OSX/libsecurity_keychain/lib/KCCursor.cpp b/OSX/libsecurity_keychain/lib/KCCursor.cpp index d6b6e332..a5d25d96 100644 --- a/OSX/libsecurity_keychain/lib/KCCursor.cpp +++ b/OSX/libsecurity_keychain/lib/KCCursor.cpp @@ -37,6 +37,7 @@ #include #include #include +#include using namespace KeychainCore; using namespace CssmClient; @@ -74,8 +75,9 @@ KCCursorImpl::KCCursorImpl(const StorageManager::KeychainList &searchList, SecIt for (const SecKeychainAttribute *attr=attrList->attr; attr != end; ++attr) { const CSSM_DB_ATTRIBUTE_INFO *temp; - - if (attr->tag <' ') // ok, is this a key schema? Handle differently, just because we can... + + // ok, is this a key schema? Handle differently, just because we can... + if (attr->tag <' ' && attr->tag < array_size(gKeyAttributeLookupTable)) { temp = gKeyAttributeLookupTable[attr->tag]; } @@ -222,9 +224,6 @@ KCCursorImpl::next(Item &item) Keychain &kc = *mCurrent; - // Grab a read lock on the keychain - StReadWriteLock __(*(kc->getKeychainReadWriteLock()), StReadWriteLock::Read); - Mutex* mutex = kc->getKeychainMutex(); StLock _(*mutex);