]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_mds/lib/mdsapi.cpp
Security-59754.80.3.tar.gz
[apple/security.git] / OSX / libsecurity_mds / lib / mdsapi.cpp
index a23fe74493264b72aac282e6da4cf8399cad5abd..3ab20d1d62d49a35a2f9376cd718aad06a3496a9 100644 (file)
@@ -36,8 +36,9 @@
 #include <memory>
 #include <security_utilities/globalizer.h>
 #include <security_utilities/threading.h>
 #include <memory>
 #include <security_utilities/globalizer.h>
 #include <security_utilities/threading.h>
+#include "LegacyAPICounts.h"
 
 
-#define MSApiDebug(args...)    secdebug("MDS_API", ## args)
+#define MSApiDebug(args...)    secinfo("MDS_API", ## args)
 
 /* Protects access to AppleDataBase */
 ModuleNexus<Mutex> adbMutex;
 
 /* Protects access to AppleDataBase */
 ModuleNexus<Mutex> adbMutex;
@@ -271,19 +272,22 @@ MDS_Initialize (const CSSM_GUID *inCallerGuid,
                 MDS_FUNCS_PTR outDlFunctions,
                 MDS_HANDLE *outMDSHandle)
 {
                 MDS_FUNCS_PTR outDlFunctions,
                 MDS_HANDLE *outMDSHandle)
 {
+// The clang analyzer is not a fan of handing handles to your caller and trusting them to release later.
+#ifndef __clang_analyzer__
     BEGIN_API
     Required (outDlFunctions);
     Required (outMDSHandle) = (new MDSSession (Guid::optional(inCallerGuid),
                                                Required(inMemoryFunctions)))->handle ();
     *outDlFunctions = gMDSFunctionTable;
     END_API(MDS)
     BEGIN_API
     Required (outDlFunctions);
     Required (outMDSHandle) = (new MDSSession (Guid::optional(inCallerGuid),
                                                Required(inMemoryFunctions)))->handle ();
     *outDlFunctions = gMDSFunctionTable;
     END_API(MDS)
+#endif
 }
 
 CSSM_RETURN CSSMAPI
 MDS_Terminate (MDS_HANDLE inMDSHandle)
 {
     BEGIN_API
 }
 
 CSSM_RETURN CSSMAPI
 MDS_Terminate (MDS_HANDLE inMDSHandle)
 {
     BEGIN_API
-    auto_ptr<MDSSession> aMDSSession (&HandleObject::findAndKill<MDSSession> (inMDSHandle, CSSMERR_CSSM_INVALID_ADDIN_HANDLE));
+    unique_ptr<MDSSession> aMDSSession (&HandleObject::findAndKill<MDSSession> (inMDSHandle, CSSMERR_CSSM_INVALID_ADDIN_HANDLE));
     aMDSSession->terminate (); // Even if terminate throws the MDSSession object will be deleted.
     END_API(MDS)
 }
     aMDSSession->terminate (); // Even if terminate throws the MDSSession object will be deleted.
     END_API(MDS)
 }