From d91dbbd460bbf6c2bbb310d80317ad494a328ead Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Fri, 26 Jan 2024 14:03:01 -0500 Subject: [PATCH] Prevent stack overflow if the logging handler is its own delegate. --- MVMCore/MVMCore/OtherHandlers/MVMCoreLoggingHandler.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MVMCore/MVMCore/OtherHandlers/MVMCoreLoggingHandler.swift b/MVMCore/MVMCore/OtherHandlers/MVMCoreLoggingHandler.swift index 42b4754..9db4039 100644 --- a/MVMCore/MVMCore/OtherHandlers/MVMCoreLoggingHandler.swift +++ b/MVMCore/MVMCore/OtherHandlers/MVMCoreLoggingHandler.swift @@ -36,6 +36,8 @@ import Foundation @objc(addErrorToLog:) open func addError(toLog errorObject: MVMCoreErrorObject) { - MVMCoreObject.sharedInstance()?.loggingDelegate?.addError(toLog: errorObject) + // Guard against doing anything further if the logging handler is its own delegate. + guard let loggingDelegate = MVMCoreObject.sharedInstance()?.loggingDelegate, loggingDelegate as? NSObject !== self else { return } + loggingDelegate.addError(toLog: errorObject) } }