diff options
author | Marti Maria <info@littlecms.com> | 2013-06-25 18:21:52 +0200 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2013-06-25 18:21:52 +0200 |
commit | 45034fbaf652b5a9ab5d5486032cc4695bab062d (patch) | |
tree | 9cf468c3708c374fe4ddb387bc449204043215cf | |
parent | 91c2db7f2559be504211b283bc3a2c631d6f06d9 (diff) | |
download | lcms2-45034fbaf652b5a9ab5d5486032cc4695bab062d.tar.gz |
Fix for read dictionary tag
-rw-r--r-- | src/cmstypes.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmstypes.c b/src/cmstypes.c index 8209556..019ad78 100644 --- a/src/cmstypes.c +++ b/src/cmstypes.c @@ -5089,14 +5089,22 @@ void *Type_Dictionary_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* i if (!ReadOneMLUC(self, io, &a.DisplayValue, i, &DisplayValueMLU)) goto Error; } + if (NameWCS == NULL || ValueWCS == NULL) { + + cmsSignalError(self->ContextID, cmsERROR_CORRUPTION_DETECTED, "Bad dictionary Name/Value"); + rc = FALSE; + } + else { + rc = cmsDictAddEntry(hDict, NameWCS, ValueWCS, DisplayNameMLU, DisplayValueMLU); + } if (NameWCS != NULL) _cmsFree(self ->ContextID, NameWCS); if (ValueWCS != NULL) _cmsFree(self ->ContextID, ValueWCS); if (DisplayNameMLU != NULL) cmsMLUfree(DisplayNameMLU); if (DisplayValueMLU != NULL) cmsMLUfree(DisplayValueMLU); - if (!rc) return FALSE; + if (!rc) goto Error; } FreeArray(&a); |