diff options
author | Marti <marti.maria@tktbrainpower.com> | 2015-11-23 21:34:17 +0100 |
---|---|---|
committer | Marti <marti.maria@tktbrainpower.com> | 2015-11-23 21:34:17 +0100 |
commit | bef9f7ba03cf5391b55309f1487ca2a6b0990388 (patch) | |
tree | 6a827a5d1efc58217cf7bba425c34a47297e833e /src/cmsio0.c | |
parent | 263f4467beee678a3e0f13310e2856d662145174 (diff) | |
download | lcms2-bef9f7ba03cf5391b55309f1487ca2a6b0990388.tar.gz |
Added mutex protection to cmsSaveProfileToIOhandler
Diffstat (limited to 'src/cmsio0.c')
-rw-r--r-- | src/cmsio0.c | 11 |
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; } |