summaryrefslogtreecommitdiff
path: root/src/cmsio0.c
diff options
context:
space:
mode:
authorMarti <marti.maria@tktbrainpower.com>2015-11-23 21:34:17 +0100
committerMarti <marti.maria@tktbrainpower.com>2015-11-23 21:34:17 +0100
commitbef9f7ba03cf5391b55309f1487ca2a6b0990388 (patch)
tree6a827a5d1efc58217cf7bba425c34a47297e833e /src/cmsio0.c
parent263f4467beee678a3e0f13310e2856d662145174 (diff)
downloadlcms2-bef9f7ba03cf5391b55309f1487ca2a6b0990388.tar.gz
Added mutex protection to cmsSaveProfileToIOhandler
Diffstat (limited to 'src/cmsio0.c')
-rw-r--r--src/cmsio0.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cmsio0.c b/src/cmsio0.c
index 7dd69e3..9937b19 100644
--- a/src/cmsio0.c
+++ b/src/cmsio0.c
@@ -1299,12 +1299,16 @@ cmsUInt32Number CMSEXPORT cmsSaveProfileToIOhandler(cmsHPROFILE hProfile, cmsIOH
cmsContext ContextID;
_cmsAssert(hProfile != NULL);
-
+
+ if (!_cmsLockMutex(Icc->ContextID, Icc->UsrMutex)) return 0;
memmove(&Keep, Icc, sizeof(_cmsICCPROFILE));
ContextID = cmsGetProfileContextID(hProfile);
PrevIO = Icc ->IOhandler = cmsOpenIOhandlerFromNULL(ContextID);
- if (PrevIO == NULL) return 0;
+ if (PrevIO == NULL) {
+ _cmsUnlockMutex(Icc->ContextID, Icc->UsrMutex);
+ return 0;
+ }
// Pass #1 does compute offsets
@@ -1325,6 +1329,7 @@ cmsUInt32Number CMSEXPORT cmsSaveProfileToIOhandler(cmsHPROFILE hProfile, cmsIOH
memmove(Icc, &Keep, sizeof(_cmsICCPROFILE));
if (!cmsCloseIOhandler(PrevIO)) return 0;
+ _cmsUnlockMutex(Icc->ContextID, Icc->UsrMutex);
return UsedSpace;
@@ -1332,6 +1337,8 @@ cmsUInt32Number CMSEXPORT cmsSaveProfileToIOhandler(cmsHPROFILE hProfile, cmsIOH
Error:
cmsCloseIOhandler(PrevIO);
memmove(Icc, &Keep, sizeof(_cmsICCPROFILE));
+ _cmsUnlockMutex(Icc->ContextID, Icc->UsrMutex);
+
return 0;
}