X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..7e6b461318c8a779d91381531435a68ee4e8b6ed:/OSX/libsecurity_keychain/lib/KCCursor.cpp?ds=inline diff --git a/OSX/libsecurity_keychain/lib/KCCursor.cpp b/OSX/libsecurity_keychain/lib/KCCursor.cpp index d6b6e332..ad7039cf 100644 --- a/OSX/libsecurity_keychain/lib/KCCursor.cpp +++ b/OSX/libsecurity_keychain/lib/KCCursor.cpp @@ -35,8 +35,9 @@ #include "Globals.h" #include "StorageManager.h" #include -#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);