diff --git a/src/cmserr.c b/src/cmserr.c index ac89811a..78a5acd8 100644 --- a/src/cmserr.c +++ b/src/cmserr.c @@ -590,6 +590,7 @@ static void* defMtxCreate(cmsContext id) { _cmsMutex* ptr_mutex = (_cmsMutex*) _cmsMalloc(id, sizeof(_cmsMutex)); + if (ptr_mutex == NULL) return NULL; _cmsInitMutexPrimitive(ptr_mutex); return (void*) ptr_mutex; } @@ -680,7 +681,7 @@ void CMSEXPORT _cmsDestroyMutex(cmsContext ContextID, void* mtx) { _cmsMutexPluginChunkType* ptr = (_cmsMutexPluginChunkType*) _cmsContextGetClientChunk(ContextID, MutexPlugin); - if (ptr ->DestroyMutexPtr != NULL) { + if (ptr ->DestroyMutexPtr != NULL && mtx != NULL) { ptr ->DestroyMutexPtr(ContextID, mtx); } @@ -690,7 +691,7 @@ cmsBool CMSEXPORT _cmsLockMutex(cmsContext ContextID, void* mtx) { _cmsMutexPluginChunkType* ptr = (_cmsMutexPluginChunkType*) _cmsContextGetClientChunk(ContextID, MutexPlugin); - if (ptr ->LockMutexPtr == NULL) return TRUE; + if (ptr ->LockMutexPtr == NULL || mtx == NULL) return TRUE; return ptr ->LockMutexPtr(ContextID, mtx); } @@ -699,7 +700,7 @@ void CMSEXPORT _cmsUnlockMutex(cmsContext ContextID, void* mtx) { _cmsMutexPluginChunkType* ptr = (_cmsMutexPluginChunkType*) _cmsContextGetClientChunk(ContextID, MutexPlugin); - if (ptr ->UnlockMutexPtr != NULL) { + if (ptr ->UnlockMutexPtr != NULL && mtx != NULL) { ptr ->UnlockMutexPtr(ContextID, mtx); }