]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/Item.cpp
Security-57740.51.3.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / Item.cpp
index 2c571084dbad7976fef7d5c68cd42f3b446638e8..dad801c55dd821ae0a4c38afebe098fe9e9fc44a 100644 (file)
@@ -77,8 +77,8 @@ ItemImpl *ItemImpl::required(SecKeychainItemRef ptr)
 
 ItemImpl *ItemImpl::optional(SecKeychainItemRef ptr)
 {
 
 ItemImpl *ItemImpl::optional(SecKeychainItemRef ptr)
 {
-    if (SecCFObject *p = KeyItem::fromSecKeyRef(ptr)) {
-        return dynamic_cast<ItemImpl *>(p);
+    if (ptr != NULL && CFGetTypeID(ptr) == SecKeyGetTypeID()) {
+        return dynamic_cast<ItemImpl *>(KeyItem::fromSecKeyRef(ptr));
     } else if (SecCFObject *p = SecCFObject::optional(ptr)) {
         if (ItemImpl *pp = dynamic_cast<ItemImpl *>(p)) {
             return pp;
     } else if (SecCFObject *p = SecCFObject::optional(ptr)) {
         if (ItemImpl *pp = dynamic_cast<ItemImpl *>(p)) {
             return pp;