]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_keychain/lib/PolicyCursor.cpp
Security-59754.80.3.tar.gz
[apple/security.git] / OSX / libsecurity_keychain / lib / PolicyCursor.cpp
index aa12338ff62a76603e66dad4daeeb631515bdb3e..6c11e1073bcc790522656a6d0fd73ba5db124a15 100644 (file)
@@ -42,26 +42,29 @@ struct TheOneTP : public TP {
 };
 
 static ModuleNexus<TheOneTP> theOneTP;
-static const CssmOid *theOidList[] = {
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_ISIGN),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_X509_BASIC),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SSL),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SMIME),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_EAP),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SW_UPDATE_SIGNING),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_IP_SEC),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_ICHAT),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_RESOURCE_SIGN),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PKINIT_CLIENT),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PKINIT_SERVER),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_CODE_SIGNING),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PACKAGE_SIGNING),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_REVOCATION_CRL),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_REVOCATION_OCSP),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_MACAPPSTORE_RECEIPT),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_APPLEID_SHARING),
-       static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_TIMESTAMPING),
-       NULL    // sentinel
+static const CssmOid** theOidList() {
+    static const CssmOid* list[] = {
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_ISIGN),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_X509_BASIC),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SSL),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SMIME),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_EAP),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_SW_UPDATE_SIGNING),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_IP_SEC),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_ICHAT),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_RESOURCE_SIGN),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PKINIT_CLIENT),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PKINIT_SERVER),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_CODE_SIGNING),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_PACKAGE_SIGNING),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_REVOCATION_CRL),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_REVOCATION_OCSP),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_MACAPPSTORE_RECEIPT),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_APPLEID_SHARING),
+        static_cast<const CssmOid *>(&CSSMOID_APPLE_TP_TIMESTAMPING),
+        NULL   // sentinel
+    };
+    return list;
 };
 
 
@@ -82,7 +85,7 @@ PolicyCursor::PolicyCursor(const CSSM_OID* oid, const CSSM_DATA* value)
 //
 // Destroy
 //
-PolicyCursor::~PolicyCursor() throw()
+PolicyCursor::~PolicyCursor() _NOEXCEPT
 {
 }
 
@@ -94,13 +97,13 @@ bool PolicyCursor::next(SecPointer<Policy> &policy)
 {
        StLock<Mutex>_(mMutex);
 
-    while (theOidList[mSearchPos]) {
-        if (mOidGiven && mOid != *theOidList[mSearchPos]) {
+    while (theOidList()[mSearchPos]) {
+        if (mOidGiven && mOid != *(theOidList()[mSearchPos])) {
             mSearchPos++;
             continue;  // no oid match
         }
         // ignoring mValue - not used by current TP
-        policy = new Policy(theOneTP(), *theOidList[mSearchPos]);
+        policy = new Policy(theOneTP(), *(theOidList()[mSearchPos]));
         mSearchPos++;  // advance cursor
         return true;   // return next match
     }