#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;
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)
+#endif
}
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)
}